001 package sharpster.client.gui;
002
003 /**
004 * <p>Title: </p>
005 * <p>Description: </p>
006 * <p>Copyright: Copyright (c) 2003</p>
007 * <p>Company: Kafka</p>
008 * @author Tommy Eriksson
009 * @version 1.0
010 */
011
012 import java.awt.*;
013 import java.awt.event.*;
014 import javax.swing.*;
015 import javax.swing.tree.*;
016 import javax.swing.event.*;
017 import java.io.File;
018
019 import java.io.FileInputStream;
020 import java.util.Enumeration;
021
022 import net.jxta.document.*;
023
024 public class ShareFileFrame extends JDialog {
025 JPanel contentPane;
026 JButton jButtonShare = new JButton();
027 JButton jButtonCancel = new JButton();
028 JScrollPane jScrollPane1 = new JScrollPane();
029
030 TreeFile treefile = new TreeFile(new File(readConfigFile("config/sharpster.cfg")));
031
032 String str = null;
033 String cvsRoot = null;
034
035 String file = null;
036 String user = null;
037 String rights = "";
038
039 DefaultMutableTreeNode top = new DefaultMutableTreeNode(treefile);
040
041
042 JTree jTree1 = new JTree(top);
043 JTextField jTextFieldShare = new JTextField();
044 JLabel jLabelShare = new JLabel();
045 JCheckBox jCheckRead = new JCheckBox();
046 JCheckBox jCheckWrite = new JCheckBox();
047 JCheckBox jCheckDelete = new JCheckBox();
048 JLabel jLabelRights = new JLabel();
049
050
051 //dgfhdfjtgj
052
053 private void createNodes(DefaultMutableTreeNode top) {
054 addNode(top, treefile);
055 }
056
057 private void addNode(DefaultMutableTreeNode node, TreeFile file) {
058 DefaultMutableTreeNode map = null;
059
060 for (int i = 0; file.getFile().list().length > i; i++) {
061
062 TreeFile tf = new TreeFile(file.getFile().listFiles()[i]);
063
064 map = new DefaultMutableTreeNode(tf);
065 node.add(map);
066
067 if (tf.getFile().isDirectory()) {
068 addNode(map, tf);
069 }
070
071 }
072
073 }
074
075
076 // Construct the frame
077 public ShareFileFrame() {
078 enableEvents(AWTEvent.WINDOW_EVENT_MASK);
079 try {
080 jbInit();
081 }
082 catch (Exception e) {
083 e.printStackTrace();
084 }
085 }
086
087 // Component initialization
088 private void jbInit() throws Exception {
089 contentPane = (JPanel)this.getContentPane();
090
091 jButtonShare.setBounds(new Rectangle(58, 280, 71, 25));
092 jButtonShare.setText("Share");
093 jButtonShare.addActionListener(new ShareFileFrame_jButtonShare_actionAdapter(this));
094
095 jButtonCancel.setBounds(new Rectangle(143, 280, 73, 25));
096 jButtonCancel.setText("Cancel");
097 jButtonCancel.addActionListener(new ShareFileFrame_jButtonCancel_actionAdapter(this));
098
099 contentPane.setLayout(null);
100 this.setTitle("Sharpster");
101 this.setSize(new Dimension(247, 349));
102
103 jScrollPane1.setBounds(new Rectangle(9, 8, 220, 185));
104
105 jTextFieldShare.setText("");
106 jTextFieldShare.setBounds(new Rectangle(84, 204, 144, 24));
107
108 jLabelShare.setText("Share file to:");
109 jLabelShare.setBounds(new Rectangle(8, 204, 79, 24));
110
111 jCheckRead.setText("Read");
112 jCheckRead.setBounds(new Rectangle(51, 238, 59, 25));
113
114 jCheckWrite.setText("Write");
115 jCheckWrite.setBounds(new Rectangle(109, 238, 59, 25));
116
117 jCheckDelete.setText("Delete");
118 jCheckDelete.setBounds(new Rectangle(167, 238, 63, 25));
119
120 jLabelRights.setText("Rights:");
121 jLabelRights.setBounds(new Rectangle(8, 242, 41, 15));
122
123 contentPane.add(jScrollPane1, null);
124 contentPane.add(jTextFieldShare, null);
125 contentPane.add(jLabelShare, null);
126 contentPane.add(jLabelRights, null);
127 contentPane.add(jCheckRead, null);
128 contentPane.add(jCheckWrite, null);
129 contentPane.add(jCheckDelete, null);
130 contentPane.add(jButtonShare, null);
131 contentPane.add(jButtonCancel, null);
132
133 jScrollPane1.getViewport().add(jTree1, null);
134
135 /** ListSelectionModel selectionModel = new SingleSelectionModel() {
136 public void updateSingleSelection(int oldIndex, int newIndex) {
137 str = (String)jList1.getModel().getElementAt(newIndex);
138 System.out.println(str);
139 File f2 = new File("C:\\cvsroot"+"\\"+str);
140 jList1.setListData(f2.list());
141 System.out.println(f2.isFile());
142 }
143 };
144 */
145 jTree1.addTreeSelectionListener(new TreeSelectionListener() {
146 public void valueChanged(TreeSelectionEvent e) {
147 DefaultMutableTreeNode node = (DefaultMutableTreeNode)
148 jTree1.getLastSelectedPathComponent();
149
150 if (node == null)
151 return;
152
153 TreeFile nodeInfo = (TreeFile)node.getUserObject();
154
155 /* React to the node selection. */
156
157 file = nodeInfo.getFile().getPath().replaceFirst(",v","");
158
159 System.out.println(file);
160
161 }
162 });
163
164 jTree1.getSelectionModel().setSelectionMode
165 (TreeSelectionModel.SINGLE_TREE_SELECTION);
166
167
168 createNodes(top);
169
170 jTree1.expandRow(0);
171
172 }
173
174 private String readConfigFile(String file) {
175 try {
176 FileInputStream input = new FileInputStream(file);
177 StructuredDocument document = (StructuredTextDocument)
178 StructuredDocumentFactory.newStructuredDocument(new MimeMediaType(
179 "text/xml"), input);
180
181 Enumeration parameter = document.getChildren();
182
183 while (parameter.hasMoreElements()) {
184 Element element = (Element) parameter.nextElement();
185 String key = (String) element.getKey();
186 if (key.equals("cvs-repository")) {
187 cvsRoot = (String) element.getValue();
188 }
189 }
190 input.close();
191 return cvsRoot;
192 }
193 catch (Exception e) {
194 System.out.println("Error: could'nt read the Sharpster config.");
195 System.exit(1);
196 return null;
197 }
198 }
199
200 void jButtonShare_actionPerformed(ActionEvent e) {
201 user = jTextFieldShare.getText();
202
203 if (file != null) {
204 if (!user.equals("")) {
205 if (jCheckRead.isSelected()) {
206 rights = "r";
207 }
208 if (jCheckWrite.isSelected()) {
209 rights = rights + "w";
210 }
211 if (jCheckDelete.isSelected()) {
212 rights = rights + "d";
213 }
214 System.out.println(user);
215 System.out.println(file);
216 System.out.println(rights);
217 }
218 else {
219 System.out.println("Error: no user name");
220 new ErrorDialog("Error: no user name", this.getLocation());
221 }
222 }
223 else {
224 System.out.println("Error: no file");
225 new ErrorDialog("Error: no file", this.getLocation());
226 }
227 rights = "";
228 }
229
230 void jButtonCancel_actionPerformed(ActionEvent e) {
231 this.dispose();
232 }
233
234
235 }
236
237 class ShareFileFrame_jButtonShare_actionAdapter
238 implements java.awt.event.ActionListener {
239 ShareFileFrame adaptee;
240
241 ShareFileFrame_jButtonShare_actionAdapter(ShareFileFrame adaptee) {
242 this.adaptee = adaptee;
243 }
244
245 public void actionPerformed(ActionEvent e) {
246 adaptee.jButtonShare_actionPerformed(e);
247 }
248 }
249
250 class ShareFileFrame_jButtonCancel_actionAdapter
251 implements java.awt.event.ActionListener {
252 ShareFileFrame adaptee;
253
254 ShareFileFrame_jButtonCancel_actionAdapter(ShareFileFrame adaptee) {
255 this.adaptee = adaptee;
256 }
257
258 public void actionPerformed(ActionEvent e) {
259 adaptee.jButtonCancel_actionPerformed(e);
260 }
261 }
262