View Javadoc
1   /*
2    * #%L
3    * JRst :: Api
4    * %%
5    * Copyright (C) 2004 - 2012 CodeLutin
6    * %%
7    * This program is free software: you can redistribute it and/or modify
8    * it under the terms of the GNU Lesser General Public License as 
9    * published by the Free Software Foundation, either version 3 of the 
10   * License, or (at your option) any later version.
11   * 
12   * This program is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Lesser Public License for more details.
16   * 
17   * You should have received a copy of the GNU General Lesser Public 
18   * License along with this program.  If not, see
19   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
20   * #L%
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   * Created: 08/06/12
33   *
34   * @author jpages <j.pages@codelutin.com>
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 }