1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.nuiton.jrst.ui;
23
24 import java.beans.PropertyChangeListener;
25 import java.beans.PropertyChangeSupport;
26 import java.io.File;
27 import java.util.List;
28 import org.nuiton.util.StringUtil;
29 import org.python.google.common.collect.Lists;
30
31
32
33
34
35
36 public class JRSTCommandModel {
37 protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
38
39 protected Boolean overwrite = Boolean.FALSE;
40 protected Boolean simpleMode = Boolean.FALSE;
41 protected Boolean formatEnabled = Boolean.TRUE;
42
43 protected File saveFile;
44 protected File openFile;
45 protected String selectedFormat;
46
47 protected List<File> xslFileList;
48
49 protected JRSTView jrstView;
50
51 public JRSTCommandModel(JRSTView jrstView) {
52 this.jrstView = jrstView;
53 xslFileList = Lists.newArrayList();
54 selectedFormat = "xml";
55 }
56
57 public Boolean isOverwrite() {
58 return overwrite;
59 }
60
61 public void setOverwrite(Boolean overwrite) {
62 Boolean oldValue = isOverwrite();
63 this.overwrite = overwrite;
64 firePropertyChange("overwrite", oldValue, overwrite);
65 }
66
67 public Boolean isSimpleMode() {
68 return simpleMode;
69 }
70
71 public void setSimpleMode(Boolean simpleMode) {
72 Boolean oldValue = isSimpleMode();
73 this.simpleMode = simpleMode;
74 firePropertyChange("simpleMode", oldValue, simpleMode);
75 }
76
77 public Boolean isFormatEnabled() {
78 return formatEnabled;
79 }
80
81 public void setFormatEnabled(Boolean formatEnabled) {
82 Boolean oldValue = isFormatEnabled();
83 this.formatEnabled = formatEnabled;
84 firePropertyChange("formatEnabled", oldValue, formatEnabled);
85 }
86
87 public File getSaveFile() {
88 return saveFile;
89 }
90
91 public void setSaveFile(File saveFile) {
92 File oldValue = getSaveFile();
93 this.saveFile = saveFile;
94 firePropertyChange("saveFile", oldValue, saveFile);
95 }
96
97 public File getOpenFile() {
98 return openFile;
99 }
100
101 public void setOpenFile(File openFile) {
102 File oldValue = getOpenFile();
103 this.openFile = openFile;
104 firePropertyChange("openFile", oldValue, openFile);
105 }
106
107 public String getSelectedFormat() {
108 return selectedFormat;
109 }
110
111 public void setSelectedFormat(String selectedFormat) {
112 String oldValue = getSelectedFormat();
113 this.selectedFormat = selectedFormat;
114 firePropertyChange("selectedFormat", oldValue, selectedFormat);
115 }
116
117 public List<File> getXslFileList() {
118 return xslFileList;
119 }
120
121 public void setXslFileList(List<File> xslFileList) {
122 List<File> oldValue = getXslFileList();
123 this.xslFileList = xslFileList;
124 firePropertyChange("xslFileList", oldValue, xslFileList);
125 }
126
127 public String getXsls() {
128 String xslAsString = StringUtil.join(getXslFileList(), new StringUtil.ToString<File>() {
129
130 @Override
131 public String toString(File file) {
132 return file.getAbsolutePath();
133 }
134 }, ",", true);
135 return xslAsString;
136 }
137
138 public void addXslFile(File xslFile, int index) {
139 List<File> oldValue = getXslFileList();
140 xslFileList.add(index, xslFile);
141 firePropertyChange("xslFileList", oldValue, xslFileList);
142 }
143
144 public File getXslFile(Integer number) {
145 if (xslFileList.size() <= number) {
146 return null;
147 }
148 return xslFileList.get(number);
149 }
150
151 public int getPanelNumber() {
152 return xslFileList.size();
153 }
154
155 public void addPropertyChangeListener(PropertyChangeListener listener) {
156 pcs.addPropertyChangeListener(listener);
157 }
158
159 public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
160 pcs.addPropertyChangeListener(propertyName, listener);
161 }
162
163 public void removePropertyChangeListener(PropertyChangeListener listener) {
164 pcs.removePropertyChangeListener(listener);
165 }
166
167 public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
168 pcs.removePropertyChangeListener(propertyName, listener);
169 }
170
171 protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
172 pcs.firePropertyChange(propertyName, oldValue, newValue);
173 }
174 }