summaryrefslogtreecommitdiff
path: root/scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathPanel.java')
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathPanel.java123
1 files changed, 123 insertions, 0 deletions
diff --git a/scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathPanel.java b/scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathPanel.java
new file mode 100644
index 000000000000..77f1c0f8b2e5
--- /dev/null
+++ b/scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathPanel.java
@@ -0,0 +1,123 @@
+/*
+ * SelectPathPanel.java
+ *
+ * Created on February 12, 2003
+ */
+
+package org.openoffice.netbeans.modules.office.wizard;
+
+import java.awt.Component;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import org.openide.WizardDescriptor;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+
+import org.openoffice.netbeans.modules.office.options.OfficeSettings;
+import org.openoffice.idesupport.OfficeInstallation;
+import org.openoffice.idesupport.SVersionRCFile;
+
+/** A single panel descriptor for a wizard.
+ * You probably want to make a wizard iterator to hold it.
+ *
+ * @author tomaso
+ */
+public class SelectPathPanel implements WizardDescriptor.Panel /* .FinishPanel */ {
+
+ /** The visual component that displays this panel.
+ * If you need to access the component from this class,
+ * just use getComponent().
+ */
+ private SelectPathVisualPanel component;
+ private OfficeInstallation office;
+
+ /** Create the wizard panel descriptor. */
+ public SelectPathPanel() {
+ office = OfficeSettings.getDefault().getOfficeDirectory();
+
+ if (office == null) {
+ try {
+ office = SVersionRCFile.createInstance().getDefaultVersion();
+ }
+ catch (java.io.IOException ioe) {}
+ }
+ }
+
+ // Get the visual component for the panel. In this template, the component
+ // is kept separate. This can be more efficient: if the wizard is created
+ // but never displayed, or not all panels are displayed, it is better to
+ // create only those which really need to be visible.
+ public Component getComponent() {
+ if (component == null) {
+ component = new SelectPathVisualPanel(this);
+ }
+ return component;
+ }
+
+ public HelpCtx getHelp() {
+ // Show no Help button for this panel:
+ return HelpCtx.DEFAULT_HELP;
+ // If you have context help:
+ // return new HelpCtx(SelectPathPanel.class);
+ }
+
+ public boolean isValid() {
+ // If it is always OK to press Next or Finish, then:
+ return true;
+ // If it depends on some condition (form filled out...), then:
+ // return someCondition();
+ // and when this condition changes (last form field filled in...) then:
+ // fireChangeEvent();
+ // and uncomment the complicated stuff below.
+ }
+
+ // public final void addChangeListener(ChangeListener l) {}
+ // public final void removeChangeListener(ChangeListener l) {}
+
+ private final Set listeners = new HashSet(1); // Set<ChangeListener>
+ public final void addChangeListener(ChangeListener l) {
+ synchronized (listeners) {
+ listeners.add(l);
+ }
+ }
+ public final void removeChangeListener(ChangeListener l) {
+ synchronized (listeners) {
+ listeners.remove(l);
+ }
+ }
+ protected final void fireChangeEvent() {
+ Iterator it;
+ synchronized (listeners) {
+ it = new HashSet(listeners).iterator();
+ }
+ ChangeEvent ev = new ChangeEvent(this);
+ while (it.hasNext()) {
+ ((ChangeListener)it.next()).stateChanged(ev);
+ }
+ }
+
+ public void setSelectedPath(OfficeInstallation oi) {
+ this.office = oi;
+ fireChangeEvent();
+ }
+
+ public OfficeInstallation getSelectedPath() {
+ return office;
+ }
+
+ // You can use a settings object to keep track of state.
+ // Normally the settings object will be the WizardDescriptor,
+ // so you can use WizardDescriptor.getProperty & putProperty
+ // to store information entered by the user.
+ public void readSettings(Object settings) {
+ }
+
+ public void storeSettings(Object settings) {
+ WizardDescriptor wiz = (WizardDescriptor)settings;
+ wiz.putProperty(InstallationPathDescriptor.PROP_INSTALLPATH, office);
+ }
+}