Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


2013/6/6 Lionel Elie Mamane <lionel@mamane.lu>

On Mon, Jun 03, 2013 at 09:49:01PM +0200, Zolnai Tamás wrote:

The feature which I intend to implement is making a new table and
insert into the already opened database.

Yes, which is exactly what the procedure described in my previous
mail also does. Except it is not limited to CSV and other
calc-supported formats (but any supported database), and already
gives you access to each sheet of a calc file instead of the first.

Which was my main motivation for slapping a better UI on *this*
procedure rather than on the more limited "go through Calc" route.

Well, misunderstandness around. I means making a new table and
insert it into the already opened database *in one step*, or more
steps but in an automated serial and without opening other window
and without copy&paste.

Yes, that's exactly what I mean, but I'm talking about the
*implementation* of that idea. You wanted to embed a calc document
(with the said CSV data) inside Base scripting/code, and then copy the
table structure and data from there. That is: you want to "automate"
the procedure of opening the CSV in calc, and copy/pasting the data in
Base.

I'm trying to get you to automate *another* procedure, that is
copy/pasting the data from *Base* to *Base*.

*Both* procedures will give the *same* result in the end for the
specific case of CSV data, but the "calc to Base" procedure can only
import data that Calc can handle, while the "base to base" procedure
can handle any data that calc can handle AND ALSO any database that
Base can handle. So for example, if you implement it following my
idea, your "one step import" will also be able to e.g. import data
from a PostgreSQL database into a MySQL database. More general, more
useful. Please do it that way, and not through a Calc XEmbeddedObject
like you originally planned.


Ok, I looked over the code and I agree that it can be more usefull to add
the feature in this general form.



With this I just say that for the user it can be looked as a
different thing and so not make confusion.

Well, if "drag'n drop" and "import" of the *same* data behave
differently in the *same* application (that is, Base), I think this is
confusing and unpredictable: even if the user knows of these two ways,
why would he expect one to work "better" or "different" than the
other?

I don't know what difference we actually speak about. In my first
plan I intended to use the same paste method and the same "Copy
Table" dialog which is used for "drag'n drop".

You intended to use the same code and dialog as which is used in "copy
from Calc, paste in Base". I want you to use the same code and dialog
as which is used in "copy from Base, paste in Base".

Imagine you automate this "import data" procedure using your idea of
"use Calc under the hood to get to the CSV data", that is same code as
which is used in "copy from Calc, paste in Base". This "use Calc under
the hood" is completely invisible to the user, (s)he is choosing a
menu entry in *Base*. So the user will naturally compare these two things:

 - Choose "import data" in Base task pane.

 - Open the *same* data in a 2nd Base window, copy it, and paste in
   the first Base window.

And expect that the two behave the same. The user will IMHO *not* find
"obvious" that "Choose 'import data' in Base task pane" will behave as
if he opened the data in ANOTHER APPLICATION (which just happens to be
LibreOffice Calc here) and *then* pasted it.


Yes I see what you say. I just intend to point at that by now it is not
matter that copy a table from Base or from Calc, because the paste works
just the same, using the same "Copy Table" dialog. But of course it can
change in the future and the way of the two copy&paste ( "copy from Calc,
paste in Base" and "copy from Base, paste in Base") can differentiate in
time, so it is indeed better to use the code of Base.


The Writer OLE-object feature (...) the same file import as Calc do
(...) which more usefull than the page with the same aim in
Base. More usefull means more options and a table showing the
expected result.

Well, if the CSV setup screen in Base sucks, we can fix
*that*. Possibly even use the same setup screen than in Calc? As in:
merge the two.

As I see its not an easy hack. In Clalc the import UI is a
ModalDialog, while in Base it is a TabPage which are not a
'mergeable' pair, at least I don't see the way.

It is work, yes. If they cannot be merged, then this is unfortunate
that we have to keep two implementations of the same feature, but we
can still add the "right" features to the Base implementation.

A few ideas:

 - The Base wizard, when one chooses "connect to existing database"
   and type "Text" and then clicks "next" fires up the Calc
   ModalDialog instead of continuing with its TabPage procedure?

 - The Base wizard, when one chooses "connect to existing database"
   and type "Text" and then clicks "next" fires up a specialised
   wizard that *does* have enough place?

Additionally in Base wizard there is no enough space for all options

Well, this can be fixed either by the specialised wizard thing or by
just enlarging the Base wizard to have enough place.

and for the table which are in the Calc csv import dialog.

The table is a different issue. In the Base wizard "connect to
existing database", one chooses a whole database (in the text/CSV
case, a directory), not just a table, so it is not as natural to show
a table. (which one from the multiple that are there?)

The "import data" wizard needs to have an additional step (compared to
the existing Base new/connect/open wizard) to choose which tables.

Plus the content of the mentioned table (containing expected result)
is already loaded in case of Calc, but in Base file-loading is
happen after setting the csv import options.

The "import data" wizard can make a connection with the options as
they stand, and then tear down the connection and reopen it each time
the settings are changed.


Well, enhanching Base connection to text database (which will be used for
import too in my current plan) can be handled indenpedently from the
primary task (import) and because I will start working on my GSoC project
soon, this improvement remains for other times.




I just imagine a 4th option to the start page of Base wizard, with
label "Import table(s) from existing database".

To me this does not sound natural. That wizard is launched by File /
New / Database. That's now where I would go looking to import data in
an existing database.


Yes, you are right. In this case I will follow the original plan to add the
new option to the "Tasks" pane. Anyway this will the easiest way. The
wizard is indepedent from tha Base window and from the controller of this
window and so it can be difficult to make the controller to use the same
method as in case of paste or drag'n drop.

Best Regards,
Tamás

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.