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

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

replace jtextpane with jtextarea

File size: 5.1 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 System.out.println("here -1");
118 JTextPaneStyle test = new JTextPaneStyle(adaptee.extension_path);
119 System.out.println("here -2");
120 test.display();
121 System.out.println("here -3");
122 ExtPane.updateExtensionContentPane();
123
124 } catch (Exception e) {
125 JOptionPane.showMessageDialog(new JFrame(),adaptee.InstallErrorMsg);
126 }
127
128 }catch(Exception ex){
129 ex.printStackTrace();
130 }
131 }
132}
133
134
135class JTextPaneStyle implements ActionListener{
136
137 private static String message ="";
138
139 JFrame frame = new JFrame("The extension (Mat) has been installed!!!");
140 private String filePath;
141
142 public JTextPaneStyle (String path){
143 filePath = path + "README.txt";
144 loadReadMe();
145 }
146
147 public void loadReadMe(){
148 message = new String();
149
150 try{
151
152 FileInputStream fstream = new FileInputStream(filePath);
153 DataInputStream in = new DataInputStream(fstream);
154 BufferedReader br = new BufferedReader(new InputStreamReader(in));
155 String strLine;
156
157 while ((strLine = br.readLine()) != null) {
158 message = message+ "\n "+ strLine;
159 }
160
161 in.close();
162 }catch (Exception e){
163 System.err.println("Error: " + e.getMessage());
164 }
165 }
166
167 public void display() {
168
169 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
170 frame.setSize(new Dimension(550, 450));
171 JPanel mainPane = new JPanel(new BorderLayout());
172 JTextArea textPane = new JTextArea(message);
173 textPane.setEditable(false);
174 JScrollPane scrollPane = new JScrollPane(textPane);
175 mainPane.add(scrollPane,BorderLayout.CENTER);
176 JButton jbutton = new JButton("ok");
177 jbutton.addActionListener(this);
178 mainPane.add(jbutton,BorderLayout.SOUTH);
179 frame.getContentPane().add(mainPane, BorderLayout.CENTER);
180 frame.setVisible(true);
181 }
182
183 public void actionPerformed(ActionEvent e) {
184 frame.dispose();
185 }
186}
187
188
Note: See TracBrowser for help on using the repository browser.