forked from External/mage
admin: added auto-connection support in admin tools (#5388)
This commit is contained in:
parent
86ca3673ff
commit
27aa791ab9
2 changed files with 44 additions and 3 deletions
|
|
@ -32,6 +32,7 @@ public class ConnectDialog extends JDialog {
|
||||||
public ConnectDialog() {
|
public ConnectDialog() {
|
||||||
initComponents();
|
initComponents();
|
||||||
cbProxyType.setModel(new DefaultComboBoxModel(Connection.ProxyType.values()));
|
cbProxyType.setModel(new DefaultComboBoxModel(Connection.ProxyType.values()));
|
||||||
|
setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDialog(ConsoleFrame console) {
|
public void showDialog(ConsoleFrame console) {
|
||||||
|
|
@ -39,8 +40,8 @@ public class ConnectDialog extends JDialog {
|
||||||
this.txtServer.setText(ConsoleFrame.getPreferences().get("serverAddress", "localhost"));
|
this.txtServer.setText(ConsoleFrame.getPreferences().get("serverAddress", "localhost"));
|
||||||
this.txtPort.setText(ConsoleFrame.getPreferences().get("serverPort", Integer.toString(17171)));
|
this.txtPort.setText(ConsoleFrame.getPreferences().get("serverPort", Integer.toString(17171)));
|
||||||
this.chkAutoConnect.setSelected(Boolean.parseBoolean(ConsoleFrame.getPreferences().get("autoConnect", "false")));
|
this.chkAutoConnect.setSelected(Boolean.parseBoolean(ConsoleFrame.getPreferences().get("autoConnect", "false")));
|
||||||
this.txtProxyServer.setText(ConsoleFrame.getPreferences().get("proxyAddress", "localhost"));
|
this.txtProxyServer.setText(ConsoleFrame.getPreferences().get("proxyAddress", ""));
|
||||||
this.txtProxyPort.setText(ConsoleFrame.getPreferences().get("proxyPort", Integer.toString(17171)));
|
this.txtProxyPort.setText(ConsoleFrame.getPreferences().get("proxyPort", Integer.toString(0)));
|
||||||
this.cbProxyType.setSelectedItem(Connection.ProxyType.valueOf(ConsoleFrame.getPreferences().get("proxyType", "NONE").toUpperCase(Locale.ENGLISH)));
|
this.cbProxyType.setSelectedItem(Connection.ProxyType.valueOf(ConsoleFrame.getPreferences().get("proxyType", "NONE").toUpperCase(Locale.ENGLISH)));
|
||||||
this.txtProxyUserName.setText(ConsoleFrame.getPreferences().get("proxyUsername", ""));
|
this.txtProxyUserName.setText(ConsoleFrame.getPreferences().get("proxyUsername", ""));
|
||||||
this.txtPasswordField.setText(ConsoleFrame.getPreferences().get("proxyPassword", ""));
|
this.txtPasswordField.setText(ConsoleFrame.getPreferences().get("proxyPassword", ""));
|
||||||
|
|
@ -71,7 +72,16 @@ public class ConnectDialog extends JDialog {
|
||||||
private void saveSettings() {
|
private void saveSettings() {
|
||||||
ConsoleFrame.getPreferences().put("serverAddress", txtServer.getText());
|
ConsoleFrame.getPreferences().put("serverAddress", txtServer.getText());
|
||||||
ConsoleFrame.getPreferences().put("serverPort", txtPort.getText());
|
ConsoleFrame.getPreferences().put("serverPort", txtPort.getText());
|
||||||
ConsoleFrame.getPreferences().put("autoConnect", Boolean.toString(chkAutoConnect.isSelected()));
|
if (chkAutoConnect.isSelected()) {
|
||||||
|
ConsoleFrame.getPreferences().putBoolean("autoConnect", true);
|
||||||
|
char[] input = txtPassword.getPassword();
|
||||||
|
ConsoleFrame.getPreferences().put("password", new String(input));
|
||||||
|
Arrays.fill(input, '0');
|
||||||
|
} else {
|
||||||
|
ConsoleFrame.getPreferences().putBoolean("autoConnect", false);
|
||||||
|
ConsoleFrame.getPreferences().put("password", "");
|
||||||
|
}
|
||||||
|
|
||||||
ConsoleFrame.getPreferences().put("proxyAddress", txtProxyServer.getText());
|
ConsoleFrame.getPreferences().put("proxyAddress", txtProxyServer.getText());
|
||||||
ConsoleFrame.getPreferences().put("proxyPort", txtProxyPort.getText());
|
ConsoleFrame.getPreferences().put("proxyPort", txtProxyPort.getText());
|
||||||
ConsoleFrame.getPreferences().put("proxyType", cbProxyType.getSelectedItem().toString());
|
ConsoleFrame.getPreferences().put("proxyType", cbProxyType.getSelectedItem().toString());
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import org.apache.log4j.Logger;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.WindowAdapter;
|
import java.awt.event.WindowAdapter;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.WindowEvent;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
@ -63,6 +64,13 @@ public class ConsoleFrame extends javax.swing.JFrame implements MageClient {
|
||||||
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
|
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
|
||||||
session = new SessionImpl(this);
|
session = new SessionImpl(this);
|
||||||
connectDialog = new ConnectDialog();
|
connectDialog = new ConnectDialog();
|
||||||
|
|
||||||
|
// try auto connect
|
||||||
|
if (!autoConnect()) {
|
||||||
|
SwingUtilities.invokeLater(() -> {
|
||||||
|
connectDialog.showDialog(this);
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
logger.fatal("", ex);
|
logger.fatal("", ex);
|
||||||
}
|
}
|
||||||
|
|
@ -78,6 +86,29 @@ public class ConsoleFrame extends javax.swing.JFrame implements MageClient {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean autoConnect() {
|
||||||
|
boolean needAutoConnect = Boolean.parseBoolean(ConsoleFrame.getPreferences().get("autoConnect", "false"));
|
||||||
|
boolean status = false;
|
||||||
|
if (needAutoConnect) {
|
||||||
|
String server = ConsoleFrame.getPreferences().get("serverAddress", "localhost");
|
||||||
|
logger.info("Auto-connecting to " + server);
|
||||||
|
Connection newConnection = new Connection();
|
||||||
|
newConnection.setHost(server);
|
||||||
|
newConnection.setPort(ConsoleFrame.getPreferences().getInt("serverPort", 17171));
|
||||||
|
newConnection.setUsername(SessionImpl.ADMIN_NAME);
|
||||||
|
newConnection.setAdminPassword(ConsoleFrame.getPreferences().get("password", ""));
|
||||||
|
newConnection.setProxyType(Connection.ProxyType.valueOf(ConsoleFrame.getPreferences().get("proxyType", "NONE").toUpperCase(Locale.ENGLISH)));
|
||||||
|
if (!newConnection.getProxyType().equals(Connection.ProxyType.NONE)) {
|
||||||
|
newConnection.setProxyHost(ConsoleFrame.getPreferences().get("proxyAddress", ""));
|
||||||
|
newConnection.setProxyPort(ConsoleFrame.getPreferences().getInt("proxyPort", 0));
|
||||||
|
newConnection.setProxyUsername(ConsoleFrame.getPreferences().get("proxyUsername", ""));
|
||||||
|
newConnection.setProxyPassword(ConsoleFrame.getPreferences().get("proxyPassword", ""));
|
||||||
|
}
|
||||||
|
status = connect(newConnection);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
public void setStatusText(String status) {
|
public void setStatusText(String status) {
|
||||||
this.lblStatus.setText(status);
|
this.lblStatus.setText(status);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue