Stefan and Paul, I added Paul's HOWTO on the Open File Wizard to the OpenJUMP Wiki under the documentation/developer section.
There may be a way to make the code look a little nicer with the wiki formatting. When I first pasted the text in it was doing some wierd things with scrolling windows. I got rid of these, but the code doesn't look great without the spacing and/or tabs. Stefan can let me know if I got this in the correct spot on the wiki, or if he had another place in mind. The Sunburned Surveyor On 10/23/07, Stefan Steiniger <[EMAIL PROTECTED]> wrote: > Hei Paul, > > can you put this on the wiki - under documentation / developer section? > > stefan > > Paul Austin schrieb: > > All, > > > > Here is a HOWTO for creating a new Open Wizard, excluding a File Layer > > which uses the Open File plug-in mechanism. > > > > 1. Define your wizard class to implement > > org.openjump.core.ui.swing.wizard.WizardGroup or extend > > org.openjump.core.ui.swing.wizard.AbstractWizardGroup. For the > > AbstractWizard group there are 3 arguments, the display name and icon to > > display in the Open Wizard and the last is the ID of the first wizard panel. > > > > public class WFSWizard extends AbstractWizardGroup { > > private static final String KEY = WFSWizard.class.getName(); > > > > public WFSWizard() { > > super(I18N.get(KEY), IconLoader.icon("wfs.gif"), > > WfsWizardPanel.getClass().getName()); > > } > > : > > } > > > > > > 2. Implement the initialize method on your wizard to create the panels > > for each time the wizard is shown. The reason you don't do this in the > > constructor is that the information you need may not be initialized when > > you construct the wizard. > > > > private ChooseProjectPanel chooseProjectPanel; > > > > public void initialize(WorkbenchContext workbenchContext, WizardDialog > > dialog) { > > removeAllPanels(); // Start from a clean slate > > > > // The chooseProject panel ensures that there is an open project to > > open the file into > > chooseProjectPanel = new ChooseProjectPanel(workbenchContext, > > urlPanel.getID()); > > addPanel(chooseProjectPanel); > > > > // Add the wizard panels for your type of data > > addPanel(new WfsWizardPanel(); > > } > > > > > > 3. Implement the method getFirstId to return the ID of the first wizard > > panel, if the first panel is always the same then this method is not > > required in the AbstractWizardGroup because you passed in the value in > > the constructor. If using the ChoosePeojectPanel you'll need to > > implement it using the following approach. > > > > public String getFirstId() { > > String firstId = super.getFirstId(); > > if (!chooseProjectPanel.hasActiveTaskFrame() > > && chooseProjectPanel.hasTaskFrames()) { > > chooseProjectPanel.setNextID(firstId); > > return chooseProjectPanel.getID(); > > } else { > > return firstId; > > } > > } > > > > 4. Implement the run method to actually do the loading of the data, this > > method is run in a separate thread so as not to block the GUI thread, so > > follow the standard Swing Threading rules (see SwingUtilities.invokeLater()) > > > > public void run(WizardDialog dialog, TaskMonitor monitor) { > > chooseProjectPanel.activateSelectedProject(); > > // Do the code for your plugin > > } > > > > 5. Register your wizard > > > > WfsWizard wfsWizard = new WfsWizard(); > > OpenWizardPlugIn.addWizard(workbenchContext, wfsWizard); > > > > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Jump-pilot-devel mailing list > > Jump-pilot-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel