Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dtp-dev] Connectivity wiki


Hey Rob,

Kudos on creating the Connectivity wiki. I think it'll be a great communication
mechanism.

Are you planning on also documenting the feature changes/implementation
decisions you make on the wiki? It would be great to know when you make
changes to the UI.

--Emily


==============================
Emily R. Kapner, Technical Writer
DTP Doc Lead



dtp-dev-request@xxxxxxxxxxx
Sent by: dtp-dev-bounces@xxxxxxxxxxx

11/07/2006 10:00 AM

Please respond to
dtp-dev@xxxxxxxxxxx

To
dtp-dev@xxxxxxxxxxx
cc
Subject
dtp-dev Digest, Vol 16, Issue 7





Send dtp-dev mailing list submissions to
                dtp-dev@xxxxxxxxxxx

To subscribe or unsubscribe via the World Wide Web, visit
                https://dev.eclipse.org/mailman/listinfo/dtp-dev
or, via email, send a message with subject or body 'help' to
                dtp-dev-request@xxxxxxxxxxx

You can reach the person managing the list at
                dtp-dev-owner@xxxxxxxxxxx

When replying, please edit your Subject line so it is more specific
than "Re: Contents of dtp-dev digest..."


Today's Topics:

  1. Connectivity Framework Usability Wiki (rcernich@xxxxxxxxxx)
  2. Fine-grained refresh control on ICatalogObject
     (Hui.Cao@xxxxxxxxxx)
  3. Re: Fine-grained refresh control on ICatalogObject
     (rcernich@xxxxxxxxxx)


----------------------------------------------------------------------

Message: 1
Date: Mon, 6 Nov 2006 18:19:21 -0800
From: rcernich@xxxxxxxxxx
Subject: [dtp-dev] Connectivity Framework Usability Wiki
To: dtp-dev@xxxxxxxxxxx
Message-ID:
                <OF96C046BB.1BC0BA8A-ON8825721E.006E1288-8725721F.000CA911@xxxxxxxxxx>
Content-Type: text/plain; charset=US-ASCII


Hey all,

I've created a wiki page for discussing the usability (or lack there of) of
the connectivity layer within DTP (connection profiles, driver definitions,
data source explorer).  Please feel free to add comments and suggestions.
Here's the link: http://wiki.eclipse.org/index.php/Connectivity:Usability

Thanks in advance for any feedback, opinions, comments and suggestions.

Sincerely,
Rob Cernich
DTP Connectivity Project Lead



------------------------------

Message: 2
Date: Tue, 7 Nov 2006 18:21:29 +0800
From: Hui.Cao@xxxxxxxxxx
Subject: [dtp-dev] Fine-grained refresh control on ICatalogObject
To: dtp-dev@xxxxxxxxxxx
Message-ID:
                <OFCC8FC6CA.04F6395D-ON4825721F.00372A98-4825721F.0038E643@xxxxxxxxxx>
Content-Type: text/plain; charset="us-ascii"

Hi,
       In DSE, when user invokes "Refresh" on a folder, the parent
ICatalogObject.refresh() will be called, resulting in all other folders
under the same ICatalogObject are refreshed as well. Is there a reason to
do so? How about adding a "refresh(int flag)" method to allow fine-grained
refresh control? In this way only the desired objects are refreshed.
       Another question is about whether to reserve the old objects while
loading in catalog loader. I have seen the following pattern in WTP RDB
catalog loaders (please notice the bold part):
       private synchronized void loadSchemas() {
               if(this.schemasLoaded) return;
               EList schemaList = super.getSchemas();
               Object[] oldList = schemaList.toArray();
               boolean deliver = this.eDeliver();
               this.eSetDeliver(false);
               try {
                       List list = CatalogUtils.getDBSchemas(this.dbName,
this.connection);
                       for (int i = 0; i < list.size(); i++) {
                               final String schemaname = (String)
list.get(i);

                               Schema schema;

                               EClass metaclass=
SQLSchemaPackage.eINSTANCE.getSchema();

                               Object element =
CatalogSchema.findElement(oldList,schemaname,metaclass);

                               try {
                                       if (element != null) {
                                               schema = (Schema) element;
//we must put list.add before refresh, otherwise NPE will be thrown
                                               schemaList.add(schema);
                                               
((ICatalogObject)schema).refresh();
                                       } else {
                                               schema = new
CatalogSchema();
schema.setName(schemaname);
                                               schemaList.add(schema);
                                       }

                               } catch (ArrayIndexOutOfBoundsException e)
{
                                       // do nothing
                                       e.printStackTrace();
                               } catch (NullPointerException e) {
                                       // do nothing
                                       e.printStackTrace();
                               }
                       }
                       this.schemasLoaded = true;
               }
               catch (Exception e) {
                       System.out.println(e.toString());
               }
               this.eSetDeliver(deliver);
       }

That is, the catalog loader tries to reserve the old object references. I
suppose this is to make sql model objects referenced by other components
(such as schema object editor) valid after refresh, it that true?

Best Regards!

Max ( Hui ) Cao
Sybase, Inc. Shanghai, China
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://eclipse.org/pipermail/dtp-dev/attachments/20061107/551ea3fa/attachment.html

------------------------------

Message: 3
Date: Tue, 7 Nov 2006 08:46:28 -0700
From: rcernich@xxxxxxxxxx
Subject: Re: [dtp-dev] Fine-grained refresh control on ICatalogObject
To: DTP development mailing list <dtp-dev@xxxxxxxxxxx>
Message-ID:
                <OF6EC7939D.9E4BC844-ON8825721F.0055BE23-8725721F.0056A6FA@xxxxxxxxxx>
Content-Type: text/plain; charset=US-ASCII

Hey Hui,

Could you provide a use case for this change (i.e. why do we need fine
grained control)?  From my perspective, the refresh action is provided so
the view can be updated to reflect any changes made by either the current
user, or another user that might be working on the same database.  Given
this, I don't understand what purpose a refresh(1) would serve.  For
example, if the user modifies a table definition and refreshes the
containing schema object, the update will only be visible if the tables are
also refreshed.  Furthermore, if the user modifies a table definition,
there is no way to determine what has changed (e.g. they added or removed
an index), so we have to refresh all the objects underneath the table
anyway.

All that said, I am also curious as to why we try reuse the old catalog
objects (seeing as we have to update the children, we're not saving a trip
to the server, so all we're really saving is newing up the objects).  In my
opinion, this was not worth the complexity it added, but perhaps there was
a more compelling reason.

Thanks in advance,
Rob

dtp-dev-bounces@xxxxxxxxxxx wrote on 11/07/2006 03:21:29 AM:

>
> Hi,
>         In DSE, when user invokes "Refresh" on a folder, the parent
> ICatalogObject.refresh() will be called, resulting in all other
> folders under the same ICatalogObject are refreshed as well. Is
> there a reason to do so? How about adding a "refresh(int flag)"
> method to allow fine-grained refresh control? In this way only the
> desired objects are refreshed.
>         Another question is about whether to reserve the old objects
> while loading in catalog loader. I have seen the following pattern
> in WTP RDB catalog loaders (please notice the bold part):
>         private synchronized void loadSchemas() {
>                 if(this.schemasLoaded) return;
>                 EList schemaList = super.getSchemas();
>                 Object[] oldList = schemaList.toArray();
>                 boolean deliver = this.eDeliver();
>                 this.eSetDeliver(false);
>                 try {
>                         List list =
CatalogUtils.getDBSchemas(this.dbName,
> this.connection);
>                         for (int i = 0; i < list.size(); i++) {
>                                 final String schemaname = (String)
> list.get(i);
>
>                                 Schema schema;
>
>                                 EClass metaclass= SQLSchemaPackage.
> eINSTANCE.getSchema();
>
>                                 Object element = CatalogSchema.
> findElement(oldList,schemaname,metaclass);
>
>                                 try {
>                                         if (element != null) {
>                                                 schema = (Schema)
element;
> //we must put list.add before refresh, otherwise NPE will be thrown
>                                                 schemaList.add(schema);
>                                                 ((ICatalogObject)
> schema).refresh();
>                                         } else {
>                                                 schema = new
CatalogSchema();
>
schema.setName(schemaname);
>                                                 schemaList.add(schema);
>                                         }
>
>                                 } catch (ArrayIndexOutOfBoundsException
e) {
>                                         // do nothing
>                                         e.printStackTrace();
>                                 } catch (NullPointerException e) {
>                                         // do nothing
>                                         e.printStackTrace();
>                                 }
>                         }
>                         this.schemasLoaded = true;
>                 }
>                 catch (Exception e) {
>                         System.out.println(e.toString());
>                 }
>                 this.eSetDeliver(deliver);
>         }
>
> That is, the catalog loader tries to reserve the old object
> references. I suppose this is to make sql model objects referenced
> by other components (such as schema object editor) valid after
> refresh, it that true?
>
> Best Regards!
>
> Max ( Hui ) Cao
> Sybase, Inc. Shanghai,
China_______________________________________________
> dtp-dev mailing list
> dtp-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/dtp-dev



------------------------------

_______________________________________________
dtp-dev mailing list
dtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dtp-dev


End of dtp-dev Digest, Vol 16, Issue 7
**************************************



Back to the top