source: greenstone3/trunk/src/java/org/greenstone/server/Server2Settings.java@ 18969

Last change on this file since 18969 was 18969, checked in by ak19, 15 years ago

Updated several files so that the Server2 code in server.jar interacts with GLI code so that the local GS2 server for Linux works the same way as the GS2 Local Library Server on windows

File size: 3.0 KB
Line 
1package org.greenstone.server;
2
3import java.awt.BorderLayout;
4import java.awt.event.*;
5import java.util.ArrayList;
6import javax.swing.*;
7import javax.swing.event.*;
8
9import org.greenstone.server.BaseServerSettings;
10
11public class Server2Settings extends BaseServerSettings implements ChangeListener, ActionListener
12{
13 protected JComboBox prefix_combobox;
14
15 public Server2Settings(BaseServer server)
16 {
17 super(server);
18 }
19
20 protected JPanel createServletPanel()
21 {
22 portNumber_spinner.addChangeListener(this);
23
24 JLabel prefix_label = new JLabel(server.dictionary.get(BaseServer.Property.SERVER_SETTINGS+".URL"));
25
26 prefix_combobox = new JComboBox();
27 prefix_combobox.setEditable(true);
28 prefix_combobox.addItem(server.getBrowserURL());
29 prefix_combobox.addActionListener(this);
30
31 JPanel comb_panel = new JPanel();
32 comb_panel.setLayout(new BorderLayout());
33 comb_panel.add(prefix_label, BorderLayout.NORTH);
34 comb_panel.add(prefix_combobox, BorderLayout.CENTER);
35 return comb_panel;
36 }
37
38 public String onSave()
39 {
40 String result = "";
41 if (!server.getBrowserURL().equals(prefix_combobox.getSelectedItem())) {
42 result += "changed";
43 result += "restart";
44 }
45 return result;
46 }
47
48 public void save(ScriptReadWrite scriptReadWrite, ArrayList newFileLines)
49 {
50 boolean auto_enter = autoEnter.isSelected();
51 if(autoStart != auto_enter) {
52 String newAutoEnter = auto_enter ? "1" : "0";
53 newFileLines = scriptReadWrite.queryReplace(newFileLines, BaseServer.Property.AUTOSTART, newAutoEnter);
54 }
55 }
56
57 public void stateChanged(ChangeEvent e) {
58 int portNumber = ((Integer)portNumber_spinner.getValue()).intValue();
59 String url = (String)prefix_combobox.getSelectedItem();
60 url.replace('\\', '/');
61 String pre = "";
62 if(url.indexOf("http://") != -1) {
63 pre = "http://";
64 url = url.substring(7);
65 }
66
67 String[] parts = url.split("/");
68 String prefix = parts[0];
69
70 int colon = prefix.indexOf(':');
71 if(colon != -1) {
72 prefix = prefix.substring(0, colon);
73 }
74
75 url = pre + prefix + ":" + portNumber;
76 for(int i = 1; i < parts.length; i++) {
77 url = url + "/" + parts[i];
78 }
79
80 prefix_combobox.setSelectedItem(url);
81 }
82
83 public void actionPerformed(ActionEvent e) {
84 String url = (String)prefix_combobox.getSelectedItem();
85 int portNumber = 80;
86
87 String oldUrl = url;
88 if(url.indexOf("http://") != -1) {
89 url = url.substring(7);
90 }
91 int colon = url.indexOf(':');
92 int slash = url.indexOf('/');
93 if(slash == -1) {
94 slash = url.length();
95 }
96 if(colon != -1) {
97 url = url.substring(colon+1, slash);
98 try {
99 portNumber_spinner.setValue(Integer.decode(url));
100 } catch(NumberFormatException nfe) { // couldn't parse port number
101 // not an integer, leave portnumber at 80
102 String oldNum = portNumber_spinner.getValue().toString();
103 oldUrl = oldUrl.replaceFirst(oldNum, "80");
104 portNumber_spinner.setValue(new Integer(80));
105 }
106 } else { // no port number
107 oldUrl = oldUrl.replaceFirst(url, url+":80");
108 portNumber_spinner.setValue(new Integer(80));
109 }
110 }
111
112}
Note: See TracBrowser for help on using the repository browser.