source: greenstone3/trunk/src/java/org/greenstone/admin/gui/ExtensionInstallation.java@ 18248

Last change on this file since 18248 was 18248, checked in by cc108, 15 years ago

remove some comments

File size: 5.0 KB
Line 
1package org.greenstone.admin.gui;
2
3import java.awt.BorderLayout;
4import java.awt.Color;
5import java.awt.Component;
6import java.awt.Dimension;
7import java.awt.GridLayout;
8
9import java.awt.event.ActionEvent;
10import java.awt.event.ActionListener;
11import java.awt.event.ItemEvent;
12import java.awt.event.ItemListener;
13import java.io.BufferedReader;
14import java.io.BufferedWriter;
15import java.io.File;
16import java.io.FileInputStream;
17import java.io.FileOutputStream;
18import java.io.IOException;
19import java.io.InputStreamReader;
20import java.io.OutputStreamWriter;
21import java.io.Writer;
22
23import javax.swing.*;
24import javax.xml.parsers.DocumentBuilder;
25import javax.xml.parsers.DocumentBuilderFactory;
26import javax.xml.transform.OutputKeys;
27import javax.xml.transform.Transformer;
28import javax.xml.transform.TransformerFactory;
29import javax.xml.transform.dom.DOMSource;
30import javax.xml.transform.stream.StreamResult;
31
32import org.greenstone.gsdl3.util.GSPath;
33import org.greenstone.gsdl3.util.GlobalProperties;
34
35
36import org.w3c.dom.Document;
37import org.w3c.dom.Element;
38import org.w3c.dom.Node;
39import org.w3c.dom.NodeList;
40import org.w3c.dom.Text;
41
42import java.text.SimpleDateFormat;
43import java.util.ArrayList;
44import java.util.Calendar;
45import java.util.Iterator;
46import java.util.Properties;
47import java.util.Set;
48
49import java.awt.BorderLayout;
50import javax.swing.JFrame;
51import javax.swing.JScrollPane;
52import javax.swing.JTextArea;
53import javax.swing.text.BadLocationException;
54import javax.swing.text.DefaultStyledDocument;
55import javax.swing.text.SimpleAttributeSet;
56import javax.swing.text.Style;
57import javax.swing.text.StyleConstants;
58import javax.swing.text.StyleContext;
59import javax.swing.text.StyledDocument;
60import java.io.DataInputStream;
61
62class ExtensionInstallation extends Thread {
63
64 Mat adaptee;
65
66 public ExtensionInstallation (Mat m){
67 adaptee = m;
68 }
69
70 public void run() {
71 try{
72
73 String gsdl3Home = adaptee.get_GSDL3HOME();
74 String fileSeparator = File.separator;
75
76 File wd = new File(adaptee.extension_path);
77 Process proc = null;
78
79 try {
80
81 if(adaptee.os_type.toLowerCase().indexOf("windows")!=-1){
82 String[] arrays = {"ant.bat", "compile"};
83 proc = Runtime.getRuntime().exec(arrays, null, wd);
84 }
85
86 else{
87 proc = Runtime.getRuntime().exec("ant compile", null, wd);
88 }
89
90 BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
91 BufferedReader errInput = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
92 String s= "";
93
94 ExtPane.message_textarea.setText("");
95
96 while ((s = stdInput.readLine()) != null) {
97 ExtPane.message_textarea.append(s+"\n");
98 ExtPane.message_textarea.setSelectionEnd(ExtPane.message_textarea.getDocument().getLength());
99 }
100
101 while ((s = errInput.readLine()) != null) {
102 ExtPane.message_textarea.append(s+"\n");
103 JOptionPane.showMessageDialog(new JFrame(),adaptee.InstallErrorMsg);
104 return;
105 }
106
107 ExtPane.message_textarea.append(adaptee.InstallCompleteMsg+"\n");
108
109 Calendar cl;
110 SimpleDateFormat sdf;
111 cl=Calendar.getInstance();
112 sdf = new SimpleDateFormat("dd/MMM/yyyy 'at' HH:mm:ss z 'GMT'Z");
113 String timestamp = sdf.format(cl.getTime());
114
115 ExtPane.message_textarea.append(timestamp);
116 proc.waitFor();
117 JTextPaneStyle msgpane = new JTextPaneStyle(adaptee.extension_path);
118 msgpane.display();
119
120 ExtPane.updateExtensionContentPane();
121
122 } catch (Exception e) {
123 JOptionPane.showMessageDialog(new JFrame(),adaptee.InstallErrorMsg);
124 }
125
126 }catch(Exception ex){
127 ex.printStackTrace();
128 }
129 }
130}
131
132
133class JTextPaneStyle implements ActionListener{
134
135 private static String message ="";
136
137 JFrame frame = new JFrame("The extension (Mat) has been installed!!!");
138 private String filePath;
139
140 public JTextPaneStyle (String path){
141 filePath = path + "README.txt";
142 loadReadMe();
143 }
144
145 public void loadReadMe(){
146 message = new String();
147
148 try{
149
150 FileInputStream fstream = new FileInputStream(filePath);
151 DataInputStream in = new DataInputStream(fstream);
152 BufferedReader br = new BufferedReader(new InputStreamReader(in));
153 String strLine;
154
155 while ((strLine = br.readLine()) != null) {
156 message = message+ "\n "+ strLine;
157 }
158
159 in.close();
160 }catch (Exception e){
161 System.err.println("Error: " + e.getMessage());
162 }
163 }
164
165 public void display() {
166
167 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
168 frame.setSize(new Dimension(550, 450));
169 JPanel mainPane = new JPanel(new BorderLayout());
170 JTextArea textPane = new JTextArea(message);
171 textPane.setEditable(false);
172 JScrollPane scrollPane = new JScrollPane(textPane);
173 mainPane.add(scrollPane,BorderLayout.CENTER);
174 JButton jbutton = new JButton("ok");
175 jbutton.addActionListener(this);
176 mainPane.add(jbutton,BorderLayout.SOUTH);
177 frame.getContentPane().add(mainPane, BorderLayout.CENTER);
178 frame.setVisible(true);
179 }
180
181 public void actionPerformed(ActionEvent e) {
182 frame.dispose();
183 }
184}
185
186
Note: See TracBrowser for help on using the repository browser.