/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ /* * ParcelPropertiesPanel.java * * Created on January 15, 2003 */ package org.openoffice.netbeans.modules.office.wizard; import java.awt.Component; import java.net.URL; import java.net.MalformedURLException; 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.loaders.TemplateWizard; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; /** A single panel descriptor for a wizard. * You probably want to make a wizard iterator to hold it. * * @author tomaso */ public class ParcelPropertiesPanel implements WizardDescriptor.FinishPanel { /** The visual component that displays this panel. * If you need to access the component from this class, * just use getComponent(). */ private ParcelPropertiesVisualPanel component; /** Create the wizard panel descriptor. */ public ParcelPropertiesPanel() { } // 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 ParcelPropertiesVisualPanel(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(ParcelPropertiesPanel.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 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 setName(String name) { this.name = name; } public void setLanguage(String language) { this.language = language; } private String language = "Java"; private String name = null; // 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) { TemplateWizard wiz = (TemplateWizard)settings; wiz.setTargetName(name); wiz.putProperty(ParcelContentsIterator.PROP_LANGUAGE, language); } }