Statistics
| Revision:

gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.swing / org.gvsig.scripting.swing.impl / src / main / java / org / gvsig / scripting / swing / impl / composer / JNewScriptPanel.java @ 441

History | View | Annotate | Download (3.92 KB)

1
package org.gvsig.scripting.swing.impl.composer;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.Color;
5
import java.awt.Dimension;
6
import java.awt.event.ActionEvent;
7
import java.awt.event.ActionListener;
8
import java.util.Collection;
9

    
10
import javax.swing.DefaultComboBoxModel;
11
import javax.swing.JComboBox;
12
import javax.swing.JComponent;
13
import javax.swing.JOptionPane;
14
import javax.swing.JScrollPane;
15
import javax.swing.JViewport;
16

    
17
import org.gvsig.scripting.ScriptingFolder;
18
import org.gvsig.scripting.ScriptingManager;
19
import org.gvsig.scripting.swing.api.ScriptingUIManager;
20
import org.gvsig.scripting.swing.impl.DefaultJScriptingBrowser;
21
import org.gvsig.scripting.swing.impl.DialogPanel;
22

    
23
public class JNewScriptPanel extends JNewScriptPanelLayout implements DialogPanel {
24
        /**
25
         * 
26
         */
27
        private static final long serialVersionUID = -3455272930442207085L;
28
        private final ScriptingUIManager uimanager;
29
        private final ScriptingManager manager;
30
        private final JNewScriptModel model;
31
         
32
        
33
        public JNewScriptPanel(ScriptingUIManager uimanager, JNewScriptModel model){
34
                super();
35
                this.uimanager = uimanager;
36
                this.manager = this.uimanager.getManager();
37
                this.model= model;
38
                this.setBackground(Color.RED);
39
                model.setAction(JNewScriptModel.ACTION_CANCEL);
40

    
41
        Collection<String> langs = manager.getSupportedLanguagesByExtension().values();
42
                languages.setModel(new DefaultComboBoxModel(langs.toArray()));
43
                languages.setSelectedItem("python");
44

    
45
                units.setModel(new DefaultComboBoxModel(manager.getUnitTypes().toArray()));
46
                units.addActionListener(new ActionListener(){
47
                        public void actionPerformed(ActionEvent arg0) {
48
                                if(((JComboBox)arg0.getSource()).getSelectedItem().equals("Project")){
49
                                        JOptionPane.showMessageDialog(null, "Projects will be supported in future versions", "Info", JOptionPane.INFORMATION_MESSAGE);
50
                                } else if(((JComboBox)arg0.getSource()).getSelectedItem().equals("Folder")){
51
                                        languages.setEnabled(false);
52
                                        createdBy.setEditable(false);
53
                                        version.setEditable(false);
54
                                } else {
55
                                        languages.setEnabled(true);
56
                                        createdBy.setEditable(true);
57
                                        version.setEditable(true);
58
                                }
59
                        }
60
                });
61

    
62
                saveTo.setText(this.manager.getRootUserFolder().getAbsolutePath());
63
                DefaultJScriptingBrowser jbrowser = new DefaultJScriptingBrowser(this.uimanager,this.manager.getUserFolder(),true);
64
                jbrowser.setPreferredSize(new Dimension(250,100));
65
                saveToPanel.setLayout(new BorderLayout());
66
                saveToPanel.add(jbrowser);
67
                jbrowser.addSelectionActionListener(new ActionListener() {
68
                        public void actionPerformed(ActionEvent arg0) {
69
                                JViewport jView = (JViewport)arg0.getSource();
70
                                JScrollPane jScroll = (JScrollPane)jView.getParent();
71
                                DefaultJScriptingBrowser jBrowser = (DefaultJScriptingBrowser)jScroll.getParent();
72
                                if(jBrowser.getSelectedNode() instanceof ScriptingFolder){
73
                                        ScriptingFolder selectedFolder = (ScriptingFolder)jBrowser.getSelectedNode();
74
                                        saveTo.setText(selectedFolder.getFile().getAbsolutePath());
75
                                }                        
76
                        }
77
                });
78
        }
79

    
80
    public void actionAccept() {
81

    
82
                model.setType((String)units.getSelectedItem());
83
                model.setName(name.getText().trim());
84
                model.setDescription(description.getText().trim());
85
                model.setCreatedBy(createdBy.getText().trim());
86
                model.setVersion(version.getText().trim());
87
                model.setPath(saveTo.getText().trim());
88
                if(!model.getType().equals(ScriptingManager.UNIT_FOLDER)){
89
                        model.setLanguage((String)languages.getSelectedItem());
90
                }
91
                try {
92
                        model.validate();
93
                } catch (Exception e) {
94
                        JOptionPane.showMessageDialog(null, e.getMessage(), "Info", JOptionPane.INFORMATION_MESSAGE);
95
                        return;
96
                }
97
                model.setAction(JNewScriptModel.ACTION_ACCEPT);
98
                setVisible(false);
99

    
100
        }
101

    
102
    public void actionApply() {
103
        }
104

    
105
    public void actionCancel() {
106
                setVisible(false);
107
        }
108

    
109
    public boolean isVisibleAccept() {
110
                return true;
111
        }
112

    
113
    public boolean isVisibleApply() {
114
                return false;
115
        }
116

    
117
    public boolean isVisibleCancel() {
118
                return true;
119
        }
120

    
121
    public JComponent getJComponent() {
122
                return this;
123
        }
124
}