Diego,

I did a little bit of work with the SelectionManager in my SuperSelect
plug-in. If you had specific questions about the use of that class, I
could try to answer.

The Sunburned Surveyor

On Feb 4, 2008 7:31 AM, Larry Becker <[EMAIL PROTECTED]> wrote:
> I assume your myZoom.execute(c); works in other contexts?
>
> Since your problem seems to be related to manipulating and then
> zooming to the selection, you might consider trying getting the
> envelope of of the element and doing:
>
> context.getWorkbenchContext().getLayerViewPanel().getViewport().zoom(envelope);
>
> Larry
>
>
> On Feb 4, 2008 8:52 AM, Diego Tosato <[EMAIL PROTECTED]> wrote:
> > This is my execute:
> >   public boolean execute(PlugInContext context) throws Exception{
> >
> >     /************  GUI  ***************/
> >     dialog = new MultiInputDialog(context.getWorkbenchFrame(), getName(),
> > true);
> >     setDialogValues(dialog, context);
> >     GUIUtil.centreOnWindow(dialog);
> >     dialog.setVisible(true);
> >     if (! dialog.wasOKPressed())
> > {cbLayer.removeActionListener((ActionListener)aLayer);
> >     bNext.removeActionListener((ActionListener)aNext);
> >     bPrev.removeActionListener((ActionListener)aPrev);
> >     return false; }
> >
> >     cbLayer.removeActionListener((ActionListener)aLayer);
> >     bNext.removeActionListener((ActionListener)aNext);
> >     bPrev.removeActionListener((ActionListener)aPrev);
> >  return true;
> >  }
> >
> >
> > The function updateUIForAction(ActionEvent e) is called when an user presses
> > the button "bNext". You can see that in:
> >
> >   private class MethodActionListener
> >    implements ActionListener {
> >    public void actionPerformed(ActionEvent e)
> >    {
> >    updateUIForAction(e);
> >    }
> >   }
> >
> >
> >   private void setDialogValues(MultiInputDialog dialog, PlugInContext
> > context)
> >   {
> >     dialog.setSideBarDescription("Compute the features classification");
> >     cbLayer = dialog.addLayerComboBox(LAYER, null,
> > context.getLayerManager());
> >     lLayer = dialog.addLabel("                  ");
> >     lLayer.setVisible(true);
> >     cbLayer.setActionCommand("load");
> >     cbLayer.addItemListener(new MethodItemListener());
> >     cbLayer.addActionListener(aLayer);
> >     dialog.addSeparator();
> >     cbClass = dialog.addComboBox("Class", (String)cl.get(0), cl, "Class
> > selection");
> >     cbCriteria = dialog.addComboBox("Criteria", (String)criteria.get(0),
> > criteria, "Criteria selection");
> >     cbClass.addItemListener(new MethodItemListener());
> >     cbClass.setEnabled(false);
> >     cbCriteria.setEnabled(false);
> >     lR = dialog.addLabel("Feature's reliability: "); //
> >     dialog.addRow("prev", bPrev, bNext, null, "next");
> >     bNext.addActionListener(aNext);
> >     bPrev.addActionListener(aPrev);
> >     bNext.setActionCommand("next");
> >     bPrev.setActionCommand("prev");
> >     bPrev.setEnabled(prev);
> >     bNext.setEnabled(false);
> >      updateUIForFunction();
> >   }
> >
> > regards,
> >
> > Diego
> >
> >
> >  On Feb 4, 2008 3:40 PM, Larry Becker <[EMAIL PROTECTED]> wrote:
> > > Well the initialize method looks OK.  I see you've commented out the
> > > selectionManager = context.getLayerViewPanel().getSelectionManager();
> > > which will not be valid at initialization time.
> > >
> > > I'm not sure what updateUIForAction(ActionEvent e) is supporting.
> > > What about your execute() method?
> > >
> > > regards,
> > >
> > > Larry
> > >
> > >
> > >
> > >
> > > On Feb 4, 2008 8:30 AM, Diego Tosato <[EMAIL PROTECTED]> wrote:
> > > > Hi Larry, this is the code in my plug in:
> > > >   public void initialize(PlugInContext context) throws Exception {
> > > >  c = context;
> > > >     workbenchContext = context.getWorkbenchContext();
> > > >     context.getFeatureInstaller().addMainMenuItem(this, new String[]
> > > > {"Tools", "FeatureMatching" }, getName(), false, null,
> > > > this.createEnableCheck(workbenchContext));
> > > >       //selectionManager =
> > > > context.getLayerViewPanel().getSelectionManager();
> > > >
> > > >   }
> > > >
> > > >
> > > > ...
> > > >
> > > >
> > > >   private void updateUIForAction(ActionEvent e) {
> > > >
> > > >  if("next".equals(e.getActionCommand()) && load ){
> > > >  if(prev){
> > > >  prev = false;
> > > >  reliability = String.valueOf(f.getAttribute("RELIABILITY"));
> > > >  classSelection(f);
> > > >  fcNew.add(f);
> > > >
> > > >  }
> > > >  else{
> > > >  fprev = f;
> > > >  f = (Feature)it.next();
> > > >  reliability = String.valueOf(f.getAttribute("RELIABILITY"));
> > > >  classSelection(f);
> > > >          fcNew.add(f);
> > > >  }
> > > >   selectionManager.clear();
> > > >
> > > >
> > c.getLayerViewPanel().getSelectionManager().getFeaturesWithSelectedItems();
> > > >
> > > >
> > System.out.println(selectionManager.getFeaturesWithSelectedItems(layer).toString());
> > > >
> > > >
> > c.getLayerViewPanel().getSelectionManager().getFeatureSelection().selectItems(layer,
> > > > f);
> > > >   try {
> > > >  myZoom.execute(c); // myZoom is an object of type: ZoomToSelectedItems
> > > >  } catch (Exception e1){}
> > > >
> > > >  bPrev.setEnabled(!prev);
> > > >  }
> > > >  if("prev".equals(e.getActionCommand()) && load){
> > > >  prev = true;
> > > >  reliability = String.valueOf(fprev.getAttribute("RELIABILITY"));
> > > >  fcNew.remove(f);
> > > >
> > > >
> > System.out.println(c.getLayerViewPanel().getSelectionManager().getFeatureSelection().toString());
> > > >
> > > >
> > c.getLayerViewPanel().getSelectionManager().getFeatureSelection().selectItems(layer,
> > > > fprev);
> > > >   try {
> > > >  myZoom.execute(c);
> > > >  } catch (Exception e1) {}
> > > >  bPrev.setEnabled(!prev);
> > > >  }
> > > >
> > > >  and here the exception:
> > > >
> > > >
> > > > Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
> > > >         at
> > > >
> > featureMatching.ClassificationPlugIn.updateUIForAction(ClassificationPlugIn.java:206)
> > > >         at
> > > >
> > featureMatching.ClassificationPlugIn.access$1(ClassificationPlugIn.java:182)
> > > >         at
> > > >
> > featureMatching.ClassificationPlugIn$MethodActionListener.actionPerformed(ClassificationPlugIn.java:244)
> > > >         at
> > > > javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
> > > >         at
> > > >
> > javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
> > > >         at
> > > >
> > javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
> > > >         at
> > > > javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
> > > >         at
> > > >
> > javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
> > > >         at
> > > > java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
> > > >         at java.awt.Component.processMouseEvent(Component.java:5583)
> > > >         at
> > javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
> > > >         at java.awt.Component.processEvent(Component.java:5348)
> > > >         at java.awt.Container.processEvent(Container.java:2010)
> > > >         at java.awt.Component.dispatchEventImpl(Component.java:4050)
> > > >         at java.awt.Container.dispatchEventImpl(Container.java:2068)
> > > >         at java.awt.Component.dispatchEvent(Component.java:3885)
> > > >         at
> > > > java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
> > > >         at
> > > > java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
> > > >         at
> > java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
> > > >         at java.awt.Container.dispatchEventImpl(Container.java:2054)
> > > >         at java.awt.Window.dispatchEventImpl(Window.java:1791)
> > > >         at java.awt.Component.dispatchEvent(Component.java:3885)
> > > >         at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
> > > >         at
> > > >
> > java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
> > > >         at
> > > >
> > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
> > > >         at
> > > >
> > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:180)
> > > >         at java.awt.Dialog$1.run(Dialog.java:535)
> > > >         at java.awt.Dialog$2.run(Dialog.java:563)
> > > >         at java.security.AccessController.doPrivileged(Native Method)
> > > >         at java.awt.Dialog.show(Dialog.java:561)
> > > >         at java.awt.Component.show(Component.java:1302)
> > > >         at java.awt.Component.setVisible(Component.java:1255)
> > > >         at
> > > >
> > com.vividsolutions.jump.workbench.ui.MultiInputDialog.setVisible(MultiInputDialog.java:178)
> > > >         at
> > > >
> > featureMatching.ClassificationPlugIn.execute(ClassificationPlugIn.java:98)
> > > >         at
> > > >
> > com.vividsolutions.jump.workbench.plugin.AbstractPlugIn$1.actionPerformed(AbstractPlugIn.java:130)
> > > >         at
> > > > javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
> > > >         at
> > > >
> > javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
> > > >         at
> > > >
> > javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
> > > >         at
> > > > javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
> > > >         at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
> > > >         at
> > apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:104)
> > > >         at java.awt.MenuItem.processActionEvent(MenuItem.java:597)
> > > >         at java.awt.MenuItem.processEvent(MenuItem.java:556)
> > > >         at
> > java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:298)
> > > >         at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:286)
> > > >         at java.awt.EventQueue.dispatchEvent(EventQueue.java:466)
> > > >         at
> > > >
> > java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
> > > >         at
> > > >
> > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
> > > >         at
> > > > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
> > > >         at
> > > > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
> > > >         at
> > java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
> > > >
> > > >
> > > > regards,
> > > >
> > > > Diego
> > > >
> > > > On Feb 4, 2008 3:16 PM, Larry Becker <[EMAIL PROTECTED]> wrote:
> > > >
> > > > > Hi Diego,
> > > > >
> > > > >  Sounds like something is corrupt or you haven't initialized your
> > > > > plugin properly.  We can give more specific hints if you post more
> > > > > code and include the entire exception trace.
> > > > >
> > > > > regards,
> > > > >
> > > > > Larry Becker
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Feb 4, 2008 7:28 AM, Diego Tosato <[EMAIL PROTECTED]> wrote:
> > > > > > Ok, I've already looked into these ones but the solution is hard to
> > find
> > > > > > out. I've isolated the problem on the object: SelectionManager. It
> > is
> > > > always
> > > > > > "null". In particular the command
> > > > > >
> > > > > >  context.getLayerViewPanel().getSelectionManager()
> > > > > >
> > > > > > returns null every time (exception).
> > > > > >  I'm working on a solution but  I don't know how to use a
> > > > SelectionManager.
> > > > > >
> > > > > > Diego
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Feb 1, 2008 3:01 PM, Stefan Steiniger <[EMAIL PROTECTED]> wrote:
> > > > > > > mhm.. don't know what to do (i have no idea about graphic stuff
> > and
> > > > > > > threading).
> > > > > > > but what you could do is to look into the code of one of these
> > plugins
> > > > > > > (especially the last one):
> > > > > > >
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomBarPlugIn
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomNextPlugIn
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomPreviousPlugIn
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomToClickPlugIn
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomToCoordinatePlugIn
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomToFencePlugIn
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomToFullExtentPlugIn
> > > > > > > com.vividsolutions.jump.workbench.ui.zoom.ZoomToLayerPlugIn
> > > > > > >
> > > > > > > stefan
> > > > > > >
> > > > > > > Diego Tosato schrieb:
> > > > > > >
> > > > > > > > Thanks Stefan, i have followed your suggestion but the problem
> > is
> > > > not
> > > > > > > > solved. Because I have the following exception:
> > > > > > > >
> > > > > > > >     Exception in thread "AWT-EventQueue-0"
> > > > > > java.lang.NullPointerException
> > > > > > > >
> > > > > > > >
> > > > > > > > This is my function in the  plug in:
> > > > > > > >
> > > > > > > >       private void updateUIForAction(ActionEvent e) {
> > > > > > > >
> > > > > > > >         ...
> > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > c.getLayerViewPanel().getSelectionManager().getFeatureSelection().selectItems(layer,f,(Collection)layer.getFeatureCollectionWrapper());
> > > > > > > >         try {
> > > > > > > >         myZoom.execute(c);
> > > > > > > >         } catch (Exception e) {}
> > > > > > > >
> > > > > > > > where c is a reference to context (c = context;) and f is a
> > Feature.
> > > > > > > >
> > > > > > > > bye
> > > > > > > > Diego
> > > > > > > >
> > > > > > > > On Jan 31, 2008 7:24 PM, Stefan Steiniger <[EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > > <mailto:[EMAIL PROTECTED]>> wrote:
> > > > > > > >
> > > > > > > >     Hei,
> > > > > > > >
> > > > > > > >     you can use:
> > > > > > > >
> > > > > > > >     private ZoomToSelectedItemsPlugIn myZoom = new
> > > > > > > >                            ZoomToSelectedItemsPlugIn();
> > > > > > > >     myZoom.execute(context);
> > > > > > > >
> > > > > > > >     (where context is the PluginContext given in the Plugin
> > > > execute()
> > > > > > > >     method)
> > > > > > > >
> > > > > > > >     but you need first to clean the current selection and add
> > your
> > > > > > object
> > > > > > > >     that you want to zoom to.
> > > > > > > >     such as:
> > > > > > > >
> > > > > >
> > > >
> > context.getLayerViewPanel().getSelectionManager().getFeatureSelection().selectItems(actualLayer,
> > > > > > > >
> > > > > > > >     features);
> > > > > > > >
> > > > > > > >     with Collection features and Layer actualLayer
> > > > > > > >
> > > > > > > >     hope that helps
> > > > > > > >     stefan
> > > > > > > >
> > > > > > > >     Diego Tosato schrieb:
> > > > > > > >      > Hi, I'm working on a new plug in  for openJUMP v1.2 D on
> > > > Eclipse
> > > > > > > >     3.3.1.1 <http://3.3.1.1>
> > > > > > > >      > <http://3.3.1.1>. I' ve a problem: I want to zooming on a
> > > > > > specific
> > > > > > > >      > feature. I've tried to use this function:
> > > > > > > >      >
> > > > > > > >      >     zoomToSelectedItemsPlugIn.zoom(
> > > > > > > >      >     FeatureUtil.toGeometries(features),
> > > > > > > >      >     taskFrame.getLayerViewPanel());
> > > > > > > >      >
> > > > > > > >      >
> > > > > > > >      > in a block try-catch but it doesn't work. In particular
> > I've
> > > > no
> > > > > > > >      > understood what is the object "taskFrame".
> > > > > > > >      > Maybe is it too simple draw a feature in a separated
> > > > interface?
> > > > > > > >      > Can anyone give me an alternative solution?
> > > > > > > >      >
> > > > > > > >      > Diego
> > > > > > > >      >
> > > > > > > >      > --
> > > > > > > >      >
> > > > > > ******************************************************************
> > > > > > > >      > Diego Tosato
> > > > > > > >      > Sito Personale: http://p0ll0.altervista.org/
> > > > > > > >      >
> > > > > > ******************************************************************
> > > > > > > >      >
> > > > > > > >      >
> > > > > > > >      >
> > > > > > > >
> > > > > >
> > ------------------------------------------------------------------------
> > > > > > > >      >
> > > > > > > >      > _______________________________________________
> > > > > > > >      > jump-users mailing list
> > > > > > > >      > [email protected]
> > > > > > > >     <mailto:[email protected]>
> > > > > > >
> > > > > > > >      > http://lists.refractions.net/mailman/listinfo/jump-users
> > > > > > > >
> > > > > > > >     _______________________________________________
> > > > > > > >     jump-users mailing list
> > > > > > > >     [email protected]
> > > > > > > >     <mailto:[email protected]>
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > >     http://lists.refractions.net/mailman/listinfo/jump-users
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > >
> > ******************************************************************
> > > > > > > > Diego Tosato
> > > > > > > > Sito Personale: http://p0ll0.altervista.org/
> > > > > > > >
> > ******************************************************************
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > ------------------------------------------------------------------------
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > jump-users mailing list
> > > > > > > > [email protected]
> > > > > > > > http://lists.refractions.net/mailman/listinfo/jump-users
> > > > > > > _______________________________________________
> > > > > > > jump-users mailing list
> > > > > > > [email protected]
> > > > > > > http://lists.refractions.net/mailman/listinfo/jump-users
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > >
> > > > > > ******************************************************************
> > > > > > Diego Tosato
> > > > > > Sito Personale: http://p0ll0.altervista.org/
> > > > > >  ******************************************************************
> > > > > > _______________________________________________
> > > > > > jump-users mailing list
> > > > > > [email protected]
> > > > > > http://lists.refractions.net/mailman/listinfo/jump-users
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > http://amusingprogrammer.blogspot.com/
> > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > jump-users mailing list
> > > > > [email protected]
> > > > > http://lists.refractions.net/mailman/listinfo/jump-users
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > ******************************************************************
> > > > Diego Tosato
> > > > Sito Personale: http://p0ll0.altervista.org/
> > > >  ******************************************************************
> > > > _______________________________________________
> > > > jump-users mailing list
> > > > [email protected]
> > > > http://lists.refractions.net/mailman/listinfo/jump-users
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > http://amusingprogrammer.blogspot.com/
> > > _______________________________________________
> > > jump-users mailing list
> > > [email protected]
> > > http://lists.refractions.net/mailman/listinfo/jump-users
> > >
> >
> >
> >
> > --
> > ******************************************************************
> > Diego Tosato
> > Sito Personale: http://p0ll0.altervista.org/
> >  ******************************************************************
> > _______________________________________________
> > jump-users mailing list
> > [email protected]
> > http://lists.refractions.net/mailman/listinfo/jump-users
> >
> >
>
>
>
> --
> http://amusingprogrammer.blogspot.com/
> _______________________________________________
> jump-users mailing list
> [email protected]
> http://lists.refractions.net/mailman/listinfo/jump-users
>
_______________________________________________
jump-users mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jump-users

Reply via email to