Hi! Thanks for the clarification.
I had supposed that the objects on the MapEditor where ILayers. Beginners mistake I guess. I need to do some serious reading on uDig. Thanks for your patience with my silly questions. Michelle -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jesse Eichar Sent: 25 February 2006 18:49 To: User-friendly Desktop Internet GIS Subject: Re: [udig-devel] Drag and Drop and beyond. You can drop it onto a map but you have to specify Map as the target. Or better would be MapEditor. It is the job of the Drop action to determine where in the map and on which layer the image is dropped on to. The DND framework just wants to know the if an image is dropped on to a MapEditor what DropAction do I call. The drop action determine what happens. If you were to drop onto a layer in the layers view then the target would be an ILayer. But if you drop onto the Map editor then it should be a Map or MapEditor. Jesse M.S.Bachler wrote: > Hi! > > So you are saying that I cannot drop an icon onto a map? > I just want to check we are using the same terminology and I am not > missunderstanding as I am new to GIS in general. > > There is a large main window (view) where you display the GIS data, > like a country ouline, with a layer showing rivers and a layer showing roads etc. I am not sure what tha view window is called.This is where I am trying to drop an icon. I thought, what I was seeing in this area was the layers. I am NOT trying to drop it on the list of layers or the list of projevts/maps, but the actual graphical area. > > The people I am writing this for want to drag images of various fish > and birds and dwelling etc, onto certain positions on a 'map', and they want a layer for each type of icon. So a layer showing all hut icons, a layer showing all fish etc. So I created a view which actually is in the same set of tabs as the layers list, from which they can drag the icons onto the 'map'/graphics area. I assumed that these were the ILayers I could drop onto? > > Have I missunderstood? Exactly where are the Layer Objects that are > accepting the drop? > > Thanks > > Michelle > > > ________________________________ > > From: [EMAIL PROTECTED] on behalf of Jesse > Eichar > Sent: Fri 24/02/2006 17:56 > To: User-friendly Desktop Internet GIS > Subject: Re: [udig-devel] Drag and Drop and beyond. > > > A few possibilities: > > 1. Are you dropping it onto a layer in the Layers View or Project > Explorer? You can't drop it on the map because it is a map not a > Layer. 2. Are you sure that the objects in the table are Image > objects? > > Those are the main things from off the top of my head. > Jesse > > M.S.Bachler wrote: > > OK, > > I tried your suggestions, but am still not getting the drop class even enstatiated or the accept method called etc. > I am new to Eclipse and uDig programming so am probably doing > something really stupid. > > My extension is now: > > > <extension point="net.refractions.udig.ui.dropAction"> > <action > class="info.ecosensus.udig.actions.IconDropAction" > name="Icon Drag And Drop"> > <destination class="net.refractions.udig.project.ILayer"/> > <acceptedType class="org.eclipse.swt.graphics.Image"/> > </action> > </extension> > > The method that creates a table in the tabbed pane in my view class > is: > > private TableViewer createTable(TabFolder folder, UIIconGroup > oIconGroup) { > > TabFolder tabFolder = folder; > Table table = new Table(tabFolder, SWT.NONE); > TableViewer viewer = new TableViewer(table); > > > UDIGDragDropUtilities.addDragSupport(viewer); > > table.setBounds(new org.eclipse.swt.graphics.Rectangle(0,0,258,460)); > > TableColumn column = new TableColumn(table, SWT.LEFT); > column.setText("Icon"); > column.setWidth(65); > > TableColumn column2 = new TableColumn(table, SWT.LEFT); > column2.setText("Name"); > column2.setWidth(150); > > table.setHeaderVisible(true); > table.setLinesVisible(true); > > Vector vtItems = oIconGroup.getItems(); > vtItems = UIUtilities.sortList(vtItems); > int count = vtItems.size(); > UIIconItem oItem = null; > TableItem oTableItem = null; > for (int i=0; i<count; i++) { > oItem = (UIIconItem)vtItems.elementAt(i); > oTableItem = new TableItem(table, SWT.LEFT, i); > oTableItem.setData(oItem); > oTableItem.setImage(0, oItem.getImage()); // An org.eclipse.swt.graphics.Image > oTableItem.setText(1, oItem.getName()); > } > > return viewer; > } > > Can you spot what I am doing wrong to break the drop? > > Thanks for your help. > > Michelle > > > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jesse Eichar > Sent: 23 February 2006 17:40 > To: User-friendly Desktop Internet GIS > Subject: Re: [udig-devel] Drag and Drop and beyond. > > > To add drag and drop to a viewer so that it can properly integrate > with uDig use the UDIGDragDropUtilities.addDragSupport(viewer). This will make it so you can drop what ever your table contains. So for example if your table contains Image objects then image objects will be dragged from your view. For a DropAction to work the accepted type must be the object dragged from the viewer. IE Images. > > Jesse > > > M.S.Bachler wrote: > > Hi! > > Did this get fixed? (see email below) > > I still can't get my string to be accepted on the drop. > > The dragStart and dragSourceData methods in the DragListener on the > source object get called fine. > But the accept method of the Drop class never gets called. > (Not even the construtor of the Drop class seems to get called!). > Not sure if it is something I am doing wrong. > > The extension code I have is: > > <extension point="net.refractions.udig.ui.dropAction"> > <action > class="info.ecosensus.udig.actions.IconDropAction" > name="Icon Drag And Drop"> > <destination > class="net.refractions.udig.project.ILayer"/> > <acceptedType class="org.eclipse.swt.widgets.Table"/> > > </action> > </extension> > > (was not sure what the accetedType should be. I have tried various > things) > > I have attached the IconDropAction class (drop) and the IconView class > (drag source) > > Any ideas? > > Michelle > > -----Original Message----- > From: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > [mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> ] On Behalf Of Jesse > Eichar > Sent: 02 November 2005 17:50 > To: User-friendly Desktop Internet GIS > Subject: Re: [udig-devel] Drag and Drop and beyond. > > > Hmmm. It isn't the SLDDropAction that is consuming the event it sounds > like the WizardDropAction is consuming the event. I think you may have > found a bug. I'm looking at the code and it seems to always accept the > string regardless of whether it can understand it. That said I'm not > sure why your extension is not being called. As far as I know the code > does not consume the data. All the actions that are valid should be > ran. > > Have you put a break point in the accept method to see if it is being > called? > > Jesse > > M.S.Bachler wrote: > > > > Hi! > > I am probably asking a stupid question, but I have written a small > plugin to accept a string drop and display a message of the string, > (just to get started). > > The problem is, I am not sure my code ever gets activated. > I assume that SLDDropAction code is taking the action before it > gets to > > > > > me? > > My project,xml action is: > > <extension point="net.refractions.udig.ui.dropAction"> > <action > > class="net.refractions.udig.test1.actions.StringDropAction" > name="String Drag and Drop"> > <destination class="net.refractions.udig.project.ILayer"/> > <acceptedType class="java.lang.String"/> > </action> > </extension> > > StringDropAction class extends IDropAction. > > Am I on the right track? > What do I need to do to get my code to be able to process the > drop? All > > > > > I get is a dialog window come up asking me to select a data > source. > > Thanks > > Michelle > > -----Original Message----- > From: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > [mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> ] On Behalf Of Jesse > Eichar > Sent: 01 November 2005 01:52 > To: User-friendly Desktop Internet GIS > Subject: Re: [udig-devel] Drag and Drop and beyond. > > > [snip] > > > > > > I am trying to understand how to start approaching the D&D stuff I > need > > > > > > > > > to do. If I drop a string or image file onto a Map, I assume it would > need to create a new layer in the layer manager (and assuming I have > programmed where), ultimately store the data in the database and then > render the feature. > > > > > > > Are you going to be developing on uDig 1.1 or 1.0.x? I have done a lot > of the difficult work so there is a nice framework for 1.1 but the > downside is that it not being released until later this month. I > don't > > > > > know what your timeline is like. > > You can look at > net.refractions.udig.project.ui.internal.actions.DropAction for an > example of an action taken when a url is dropped on a a layer. The > declaration of the drop action in the project.xml goes something like: > <action > > class="net.refractions.udig.project.ui.internal.actions.SLDDropAction" > name="SLD Drag and Drop"> > <destination class="net.refractions.udig.project.ILayer"/> > <acceptedType class="java.io.File"/> > <acceptedType class="java.net.URL"/> > <acceptedType class="java.lang.String"/> > </action> > > I'm going to put this example in the drag and drop documenation I wrote > for you. > > > > > > So I need to deal with Map, LayerManager, RenderManager, Catalogue, > Feature and probably more? Ahhh! I feel sleepless nights coming > on. > > > > > > > This depends on the work flow and requirements. Suppose you drop a > string on layer in LayersView and the drop action creates a feature by > interpreting the string and adds it to the layer. In this case > can use > > > > > the Layer.getResource() method to get a FeatureStore (Class used for > adding/removing features from a datastore) and add the feature > using > > > the > > > FeatureStore. In this case all you need to know is the Layer and > FeatureStore API. > > Now suppose you drop a image that some how specifies a layer and all > the > > features in the layer. In this case you need to know Map, Layer, > Catalog, Feature, DataStore, etc... > > Hope this helps. > > Jesse > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net <http://udig.refractions.net> > http://lists.refractions.net/mailman/listinfo/udig-devel <http://lists.refractions.net/mailman/listinfo/udig-devel> > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net <http://udig.refractions.net> > http://lists.refractions.net/mailman/listinfo/udig-devel > <http://lists.refractions.net/mailman/listinfo/udig-devel> > > > > > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net <http://udig.refractions.net> > http://lists.refractions.net/mailman/listinfo/udig-devel > <http://lists.refractions.net/mailman/listinfo/udig-devel> > > > ________________________________ > > > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) > http://udig.refractions.net <http://udig.refractions.net> > http://lists.refractions.net/mailman/listinfo/udig-devel > <http://lists.refractions.net/mailman/listinfo/udig-devel> > > > > > ________________________________ > > > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) > http://udig.refractions.net > http://lists.refractions.net/mailman/listinfo/udig-devel > > > > > ---------------------------------------------------------------------- > -- > > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net > http://lists.refractions.net/mailman/listinfo/udig-devel > _______________________________________________ User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net http://lists.refractions.net/mailman/listinfo/udig-devel _______________________________________________ User-friendly Desktop Internet GIS (uDig) http://udig.refractions.net http://lists.refractions.net/mailman/listinfo/udig-devel
