This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 42192
Collapse All | Expand All

(-)openide/loaders/src/org/openide/loaders/TemplateWizardIterImpl.java (-1 / +13 lines)
Lines 13-18 Link Here
13
13
14
package org.openide.loaders;
14
package org.openide.loaders;
15
15
16
import java.io.IOException;
16
import javax.swing.event.*;
17
import javax.swing.event.*;
17
18
18
import org.openide.WizardDescriptor;
19
import org.openide.WizardDescriptor;
Lines 23-29 Link Here
23
* @author  Jaroslav Tulach
24
* @author  Jaroslav Tulach
24
*/
25
*/
25
final class TemplateWizardIterImpl extends Object
26
final class TemplateWizardIterImpl extends Object
26
    implements WizardDescriptor.Iterator, ChangeListener {
27
    implements WizardDescriptor.InstantiatingIterator, ChangeListener {
27
    /** iterator to delegate to */
28
    /** iterator to delegate to */
28
    private TemplateWizard.Iterator iterator;
29
    private TemplateWizard.Iterator iterator;
29
30
Lines 210-214 Link Here
210
                ((javax.swing.event.ChangeListener)listeners[i+1]).stateChanged (e);
211
                ((javax.swing.event.ChangeListener)listeners[i+1]).stateChanged (e);
211
            }
212
            }
212
        }
213
        }
214
    }
215
    
216
    // impl of WizardDescriptor.InstantiatingIterator
217
    public java.util.Set instantiate () throws IOException {
218
        return iterator.instantiate (this.wizardInstance);
219
    }
220
    public void initialize (WizardDescriptor wizard) {
221
        iterator.initialize ((TemplateWizard)wizard);
222
    }
223
    public void uninitialize (WizardDescriptor wizard) {
224
        iterator.uninitialize ((TemplateWizard)wizard);
213
    }
225
    }
214
}
226
}
(-)openide/src/org/openide/WizardDescriptor.java (-1 / +44 lines)
Lines 35-40 Link Here
35
import java.awt.Window;
35
import java.awt.Window;
36
import java.beans.PropertyChangeListener;
36
import java.beans.PropertyChangeListener;
37
import java.beans.PropertyChangeEvent;
37
import java.beans.PropertyChangeEvent;
38
import java.io.IOException;
38
import java.net.URL;
39
import java.net.URL;
39
import java.lang.ref.WeakReference;
40
import java.lang.ref.WeakReference;
40
41
Lines 259-264 Link Here
259
    */
260
    */
260
    public WizardDescriptor (Iterator panels, Object settings) {
261
    public WizardDescriptor (Iterator panels, Object settings) {
261
        super ("", "", true, DEFAULT_OPTION, null, CLOSE_PREVENTER); // NOI18N
262
        super ("", "", true, DEFAULT_OPTION, null, CLOSE_PREVENTER); // NOI18N
263
        
262
        this.settings = settings == CLOSE_PREVENTER ? this : settings;
264
        this.settings = settings == CLOSE_PREVENTER ? this : settings;
263
265
264
        listener = new Listener ();
266
        listener = new Listener ();
Lines 273-281 Link Here
273
        super.setOptions (new Object[] { previousButton, nextButton, finishButton, cancelButton });
275
        super.setOptions (new Object[] { previousButton, nextButton, finishButton, cancelButton });
274
        super.setClosingOptions (new Object[] { finishOption, cancelButton });
276
        super.setClosingOptions (new Object[] { finishOption, cancelButton });
275
277
278
        // must be there?
279
        if (panels instanceof InstantiatingIterator) {
280
            ((InstantiatingIterator)panels).initialize (this);
281
        }
282
        
276
        this.panels = panels;
283
        this.panels = panels;
277
        panels.addChangeListener (listener);
284
        panels.addChangeListener (listener);
278
        
279
    }
285
    }
280
286
281
    /** Create wizard for a sequence of panels, with settings
287
    /** Create wizard for a sequence of panels, with settings
Lines 292-297 Link Here
292
     */
298
     */
293
    protected void initialize () {
299
    protected void initialize () {
294
        super.initialize ();
300
        super.initialize ();
301
        
302
        
295
303
296
        updateState ();
304
        updateState ();
297
    }
305
    }
Lines 853-858 Link Here
853
            }
861
            }
854
        }
862
        }
855
        panels.removeChangeListener(listener);
863
        panels.removeChangeListener(listener);
864
        if (panels instanceof InstantiatingIterator) {
865
            ((InstantiatingIterator)panels).uninitialize (this);
866
        }
856
    }
867
    }
857
    
868
    
858
    ResourceBundle bundle = NbBundle.getBundle(WizardDescriptor.class);
869
    ResourceBundle bundle = NbBundle.getBundle(WizardDescriptor.class);
Lines 1162-1167 Link Here
1162
1173
1163
    }
1174
    }
1164
    
1175
    
1176
    /** Instantiating iterator. PENDING
1177
    */
1178
    public interface InstantiatingIterator extends Iterator {
1179
        
1180
        /** PENDING
1181
         *
1182
         * @param settings
1183
         * @throws IOException
1184
         * @return
1185
         */        
1186
        public java.util.Set instantiate () throws IOException;
1187
        
1188
        /** PENDING
1189
         *
1190
         * @param wizard
1191
         */        
1192
        public void initialize (WizardDescriptor wizard);
1193
        
1194
        /** PENDING
1195
         *
1196
         * @param wizard
1197
         */        
1198
        public void uninitialize (WizardDescriptor wizard);
1199
    }
1200
    
1165
    private boolean lazyValidate (WizardDescriptor.Panel panel, WizardDescriptor.WizardPanel wizard) {
1201
    private boolean lazyValidate (WizardDescriptor.Panel panel, WizardDescriptor.WizardPanel wizard) {
1166
        if (panel instanceof ValidatingPanel) {
1202
        if (panel instanceof ValidatingPanel) {
1167
            ValidatingPanel v = (ValidatingPanel)panel;
1203
            ValidatingPanel v = (ValidatingPanel)panel;
Lines 1252-1257 Link Here
1252
                    resetWizard();
1288
                    resetWizard();
1253
                }
1289
                }
1254
                firePropertyChange (PROP_VALUE, oldValue, OK_OPTION);
1290
                firePropertyChange (PROP_VALUE, oldValue, OK_OPTION);
1291
                if (panels instanceof InstantiatingIterator) {
1292
                    try {
1293
                        ((InstantiatingIterator)panels).instantiate ();
1294
                    } catch (IOException ioe) {
1295
                        ErrorManager.getDefault ().notify (ioe);
1296
                    }
1297
                }
1255
            }
1298
            }
1256
1299
1257
            if (ev.getSource () == cancelButton) {
1300
            if (ev.getSource () == cancelButton) {
(-)java/project/src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java (-5 / +4 lines)
Lines 28-34 Link Here
28
import org.openide.WizardDescriptor;
28
import org.openide.WizardDescriptor;
29
import org.openide.filesystems.FileObject;
29
import org.openide.filesystems.FileObject;
30
import org.openide.filesystems.FileUtil;
30
import org.openide.filesystems.FileUtil;
31
import org.openide.loaders.TemplateWizard;
32
import org.openide.util.HelpCtx;
31
import org.openide.util.HelpCtx;
33
32
34
/**
33
/**
Lines 83-105 Link Here
83
82
84
    public void readSettings( Object settings ) {
83
    public void readSettings( Object settings ) {
85
        
84
        
86
        TemplateWizard templateWizard = (TemplateWizard)settings;
85
        WizardDescriptor wizard = (WizardDescriptor) settings;
87
        
86
        
88
        if ( gui != null ) {
87
        if ( gui != null ) {
89
            
88
            
90
            Project project = Templates.getProject( templateWizard );
89
            Project project = Templates.getProject( wizard );
91
            
90
            
92
            // Try to preselect a folder
91
            // Try to preselect a folder
93
            // XXX The test should be rewritten if external project dirs are supported
92
            // XXX The test should be rewritten if external project dirs are supported
94
            
93
            
95
            FileObject preselectedTarget = Templates.getTargetFolder( templateWizard );
94
            FileObject preselectedTarget = Templates.getTargetFolder( wizard );
96
            String targetFolder = null;
95
            String targetFolder = null;
97
            if ( preselectedTarget != null && FileUtil.isParentOf( project.getProjectDirectory(), preselectedTarget ) ) {
96
            if ( preselectedTarget != null && FileUtil.isParentOf( project.getProjectDirectory(), preselectedTarget ) ) {
98
                targetFolder = FileUtil.getRelativePath( project.getProjectDirectory(), preselectedTarget );
97
                targetFolder = FileUtil.getRelativePath( project.getProjectDirectory(), preselectedTarget );
99
            }
98
            }
100
                        
99
                        
101
            // Init values
100
            // Init values
102
            gui.initValues( project, folders, Templates.getTemplate( templateWizard ), targetFolder );
101
            gui.initValues( project, folders, Templates.getTemplate( wizard ), targetFolder );
103
        }
102
        }
104
    }
103
    }
105
104
(-)java/project/src/org/netbeans/modules/java/project/NewJavaFileWizardIterator.java (-6 / +5 lines)
Lines 40-53 Link Here
40
import org.openide.filesystems.Repository;
40
import org.openide.filesystems.Repository;
41
import org.openide.loaders.DataFolder;
41
import org.openide.loaders.DataFolder;
42
import org.openide.loaders.DataObject;
42
import org.openide.loaders.DataObject;
43
import org.openide.loaders.TemplateWizard;
44
import org.openide.nodes.Node;
43
import org.openide.nodes.Node;
45
44
46
/**
45
/**
47
 * Wizard to create a new J2SE project.
46
 * Wizard to create a new J2SE project.
48
 * @author Jesse Glick
47
 * @author Jesse Glick
49
 */
48
 */
50
public class NewJavaFileWizardIterator implements TemplateWizard.Iterator {
49
public class NewJavaFileWizardIterator implements WizardDescriptor.InstantiatingIterator {
51
    
50
    
52
    private static final long serialVersionUID = 1L;
51
    private static final long serialVersionUID = 1L;
53
    
52
    
Lines 87-93 Link Here
87
        };
86
        };
88
    }
87
    }
89
        
88
        
90
    public Set/*<DataObject>*/ instantiate(TemplateWizard wiz) throws IOException {
89
    public Set/*<DataObject>*/ instantiate (/*WizardDescriptor wizardDescriptor*/) throws IOException {
91
        FileObject dir = Templates.getTargetFolder( wiz );
90
        FileObject dir = Templates.getTargetFolder( wiz );
92
        
91
        
93
        DataFolder df = DataFolder.findFolder( dir );
92
        DataFolder df = DataFolder.findFolder( dir );
Lines 116-124 Link Here
116
        
115
        
117
    private transient int index;
116
    private transient int index;
118
    private transient WizardDescriptor.Panel[] panels;
117
    private transient WizardDescriptor.Panel[] panels;
119
    private transient TemplateWizard wiz;
118
    private transient WizardDescriptor wiz;
120
    
119
    
121
    public void initialize(TemplateWizard wiz) {
120
    public void initialize(WizardDescriptor wiz) {
122
        this.wiz = wiz;
121
        this.wiz = wiz;
123
        index = 0;
122
        index = 0;
124
        panels = createPanels( wiz );
123
        panels = createPanels( wiz );
Lines 141-147 Link Here
141
            }
140
            }
142
        }
141
        }
143
    }
142
    }
144
    public void uninitialize(TemplateWizard wiz) {
143
    public void uninitialize (WizardDescriptor wiz) {
145
        this.wiz = null;
144
        this.wiz = null;
146
        panels = null;
145
        panels = null;
147
    }
146
    }
(-)java/project/src/org/netbeans/spi/java/project/support/ui/templates/JavaTemplates.java (-1 lines)
Lines 19-25 Link Here
19
import org.netbeans.spi.project.ui.templates.support.Templates;
19
import org.netbeans.spi.project.ui.templates.support.Templates;
20
import org.openide.WizardDescriptor;
20
import org.openide.WizardDescriptor;
21
import org.openide.filesystems.FileObject;
21
import org.openide.filesystems.FileObject;
22
import org.openide.loaders.TemplateWizard;
23
22
24
/**
23
/**
25
 * Default implementations of Java-specific template UI.
24
 * Default implementations of Java-specific template UI.
(-)projects/projectui/nbproject/project.xml (-1 / +1 lines)
Lines 47-53 Link Here
47
                    <compile-dependency/>
47
                    <compile-dependency/>
48
                    <run-dependency>
48
                    <run-dependency>
49
                        <release-version>1</release-version>
49
                        <release-version>1</release-version>
50
                        <specification-version>4.13</specification-version>
50
                        <specification-version>4.29</specification-version>
51
                    </run-dependency>
51
                    </run-dependency>
52
                </dependency>
52
                </dependency>
53
                <dependency>
53
                <dependency>
(-)projects/projectui/src/org/netbeans/modules/project/ui/NewFileWizard.java (-1 / +34 lines)
Lines 37-48 Link Here
37
import org.openide.loaders.TemplateWizard;
37
import org.openide.loaders.TemplateWizard;
38
import org.openide.util.HelpCtx;
38
import org.openide.util.HelpCtx;
39
39
40
public final class NewFileWizard  extends TemplateWizard {
40
public final class NewFileWizard extends TemplateWizard {
41
        
41
        
42
    private Project p;
42
    private Project p;
43
    private String[] recommendedTypes;
43
    private String[] recommendedTypes;
44
44
45
    public NewFileWizard( Project p, String recommendedTypes[] ) {
45
    public NewFileWizard( Project p, String recommendedTypes[] ) {
46
        //super (new HelpIterator ());
46
        this.p = p;
47
        this.p = p;
47
        this.recommendedTypes = recommendedTypes;        
48
        this.recommendedTypes = recommendedTypes;        
48
        setTitle( "New File" );
49
        setTitle( "New File" );
Lines 63-68 Link Here
63
        return Templates.createSimpleTargetChooser(p, c.getSourceGroups(Sources.TYPE_GENERIC));
64
        return Templates.createSimpleTargetChooser(p, c.getSourceGroups(Sources.TYPE_GENERIC));
64
    }
65
    }
65
        
66
        
67
}
68
69
class HelpIterator implements WizardDescriptor.InstantiatingIterator {
70
        public WizardDescriptor.Panel current () {
71
            return null;
72
        }
73
        public String name () {
74
            return "";
75
        }
76
        public boolean hasNext () {
77
            return false;
78
        }
79
        public boolean hasPrevious () {
80
            return false;
81
        }
82
        public void nextPanel () {
83
            
84
        }
85
        public void previousPanel () {
86
            
87
        }
88
        public void addChangeListener (ChangeListener l) {
89
            
90
        }
91
        public void removeChangeListener (ChangeListener l) {
92
            
93
        }
94
        public java.util.Set instantiate () throws IOException {
95
            return null;
96
        }
97
        public void initialize (WizardDescriptor wizard) {}
98
        public void uninitialize (WizardDescriptor wizard) {}
66
}
99
}
67
    
100
    
68
/** Old impl might be usefull later in Wizards API
101
/** Old impl might be usefull later in Wizards API
(-)projects/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java (-5 / +4 lines)
Lines 26-32 Link Here
26
import org.openide.WizardDescriptor;
26
import org.openide.WizardDescriptor;
27
import org.openide.filesystems.FileObject;
27
import org.openide.filesystems.FileObject;
28
import org.openide.filesystems.FileUtil;
28
import org.openide.filesystems.FileUtil;
29
import org.openide.loaders.TemplateWizard;
30
import org.openide.util.HelpCtx;
29
import org.openide.util.HelpCtx;
31
30
32
/**
31
/**
Lines 81-103 Link Here
81
80
82
    public void readSettings( Object settings ) {
81
    public void readSettings( Object settings ) {
83
        
82
        
84
        TemplateWizard templateWizard = (TemplateWizard)settings;
83
        WizardDescriptor wd = (WizardDescriptor)settings;
85
        
84
        
86
        if ( gui != null ) {
85
        if ( gui != null ) {
87
            
86
            
88
            Project project = Templates.getProject( templateWizard );
87
            Project project = Templates.getProject( wd );
89
            
88
            
90
            // Try to preselect a folder
89
            // Try to preselect a folder
91
            // XXX The test should be rewritten if external project dirs are supported
90
            // XXX The test should be rewritten if external project dirs are supported
92
            
91
            
93
            FileObject preselectedTarget = Templates.getTargetFolder( templateWizard );
92
            FileObject preselectedTarget = Templates.getTargetFolder( wd );
94
            String targetFolder = null;
93
            String targetFolder = null;
95
            if ( preselectedTarget != null && FileUtil.isParentOf( project.getProjectDirectory(), preselectedTarget ) ) {
94
            if ( preselectedTarget != null && FileUtil.isParentOf( project.getProjectDirectory(), preselectedTarget ) ) {
96
                targetFolder = FileUtil.getRelativePath( project.getProjectDirectory(), preselectedTarget );
95
                targetFolder = FileUtil.getRelativePath( project.getProjectDirectory(), preselectedTarget );
97
            }
96
            }
98
                        
97
                        
99
            // Init values
98
            // Init values
100
            gui.initValues( project, Templates.getTemplate( templateWizard ), targetFolder );
99
            gui.initValues( project, Templates.getTemplate( wd ), targetFolder );
101
        }
100
        }
102
    }
101
    }
103
102
(-)projects/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanel.java (-5 / +8 lines)
Lines 88-94 Link Here
88
            gui.initValues( p );
88
            gui.initValues( p );
89
        }
89
        }
90
        
90
        
91
        TemplateWizard wd = (TemplateWizard)settings;
91
        WizardDescriptor wd = (WizardDescriptor)settings;
92
        wd.setTitle( "New File - Choose File Type" );
92
        wd.setTitle( "New File - Choose File Type" );
93
        wd.putProperty( "WizardPanel_contentData", new String[] { "Choose Template", "..." } ); // NOI18N
93
        wd.putProperty( "WizardPanel_contentData", new String[] { "Choose Template", "..." } ); // NOI18N
94
        wd.putProperty( "WizardPanel_contentSelectedIndex", new Integer( 0 ) ); // NOI18N
94
        wd.putProperty( "WizardPanel_contentSelectedIndex", new Integer( 0 ) ); // NOI18N
Lines 96-111 Link Here
96
96
97
    public void storeSettings(Object settings) {
97
    public void storeSettings(Object settings) {
98
            
98
            
99
        TemplateWizard templateWizard = (TemplateWizard)settings;
99
        WizardDescriptor wd = (WizardDescriptor)settings;
100
        
100
        
101
        Object value = templateWizard.getValue();
101
        Object value = wd.getValue();
102
        
102
        
103
        if ( NotifyDescriptor.CANCEL_OPTION != value &&
103
        if ( NotifyDescriptor.CANCEL_OPTION != value &&
104
             NotifyDescriptor.CLOSED_OPTION != value ) {        
104
             NotifyDescriptor.CLOSED_OPTION != value ) {        
105
            try { 
105
            try { 
106
106
107
                templateWizard.putProperty( ProjectChooserFactory.WIZARD_KEY_PROJECT, gui.getProject() );
107
                wd.putProperty( ProjectChooserFactory.WIZARD_KEY_PROJECT, gui.getProject() );
108
                templateWizard.setTemplate( DataObject.find( gui.getTemplate() ) );
108
                
109
                // Create NewFileWizard !!!
110
                
111
                ((TemplateWizard)wd).setTemplate( DataObject.find( gui.getTemplate() ) );
109
            }
112
            }
110
            catch( DataObjectNotFoundException e ) {
113
            catch( DataObjectNotFoundException e ) {
111
                // XXX
114
                // XXX
(-)projects/projectui/src/org/netbeans/modules/project/ui/actions/NewFile.java (-2 / +1 lines)
Lines 24-30 Link Here
24
import org.netbeans.modules.project.ui.OpenProjectList;
24
import org.netbeans.modules.project.ui.OpenProjectList;
25
import org.openide.loaders.DataFolder;
25
import org.openide.loaders.DataFolder;
26
import org.openide.loaders.DataObject;
26
import org.openide.loaders.DataObject;
27
import org.openide.loaders.TemplateWizard;
28
import org.openide.util.Lookup;
27
import org.openide.util.Lookup;
29
import org.openide.util.NbBundle;
28
import org.openide.util.NbBundle;
30
import org.openide.util.Utilities;
29
import org.openide.util.Utilities;
Lines 56-62 Link Here
56
55
57
    protected void actionPerformed( Lookup context ) {
56
    protected void actionPerformed( Lookup context ) {
58
57
59
        TemplateWizard wd = new NewFileWizard( preselectedProject( context ), null ); //wizardIterator );
58
        NewFileWizard wd = new NewFileWizard( preselectedProject( context ), null ); //wizardIterator );
60
59
61
        DataFolder preselectedFolder = preselectedFolder( context );
60
        DataFolder preselectedFolder = preselectedFolder( context );
62
        if ( preselectedFolder != null ) {
61
        if ( preselectedFolder != null ) {
(-)projects/projectui/src/org/netbeans/modules/project/ui/actions/NewProject.java (-1 / +1 lines)
Lines 46-52 Link Here
46
    public void actionPerformed( ActionEvent evt ) {
46
    public void actionPerformed( ActionEvent evt ) {
47
47
48
        if ( wizard == null ) {
48
        if ( wizard == null ) {
49
            wizard = new TemplateWizard();                
49
            wizard = new TemplateWizard(); // XXX Create NewProjectWizard instead of TemplateWizard               
50
            FileObject fo = Repository.getDefault().getDefaultFileSystem().findResource( "Templates/Project" ); //NOI18N                
50
            FileObject fo = Repository.getDefault().getDefaultFileSystem().findResource( "Templates/Project" ); //NOI18N                
51
51
52
            DataFolder templates = DataFolder.findFolder( fo );
52
            DataFolder templates = DataFolder.findFolder( fo );

Return to bug 42192