package org.fnppl.opensdx.gui.helper;
/*
* Copyright (C) 2010-2015
* fine people e.V. <opensdx@fnppl.org>
* Henning Thieß <ht@fnppl.org>
*
* http://fnppl.org
*/
/*
* Software license
*
* As far as this file or parts of this file is/are software, rather than documentation, this software-license applies / shall be applied.
*
* This file is part of openSDX
* openSDX is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* openSDX is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* and GNU General Public License along with openSDX.
* If not, see <http://www.gnu.org/licenses/>.
*
*/
/*
* Documentation license
*
* As far as this file or parts of this file is/are documentation, rather than software, this documentation-license applies / shall be applied.
*
* This file is part of openSDX.
* Permission is granted to copy, distribute and/or modify this document
* under the terms of the GNU Free Documentation License, Version 1.3
* or any later version published by the Free Software Foundation;
* with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
* A copy of the license is included in the section entitled "GNU
* Free Documentation License" resp. in the file called "FDL.txt".
*
*/
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Color;
import java.awt.KeyboardFocusManager;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.text.JTextComponent;
import org.fnppl.opensdx.common.*;
import org.fnppl.opensdx.dmi.FeedGui;
import org.fnppl.opensdx.dmi.FeedGuiTooltips;
import org.fnppl.opensdx.gui.DefaultMessageHandler;
import org.fnppl.opensdx.gui.Dialogs;
import org.fnppl.opensdx.security.KeyApprovingStore;
import org.fnppl.opensdx.security.OSDXKey;
import java.io.File;
import java.net.InetAddress;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.Vector;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class PanelReceiver extends JPanel implements MyObservable, TextChangeListener {
//init fields
//private DocumentChangeListener documentListener;
//private KeyAdapter keyAdapter;
private HashMap<String,JComponent> map = new HashMap<String, JComponent>();
private JLabel label_type;
private JComboBox select_type;
private DefaultComboBoxModel select_type_model;
private JLabel label_servername;
private JTextField text_servername;
private JLabel label_serveripv4;
private JTextField text_serveripv4;
private JLabel label_auth_type;
private JComboBox select_auth_type;
private DefaultComboBoxModel select_auth_type_model;
// private JLabel label_keystore;
// private JTextField text_keystore;
// private JButton bu_keystore_select;
// private JButton bu_keystore_remove;
private JLabel label_keyid;
private JTextField text_keyid;
private JButton bu_keyid_select;
private JButton bu_keyid_remove;
private JLabel label_username;
private JTextField text_username;
private JButton bu_beam_me_up;
private FeedGui gui = null;
private Receiver receiver = null;
public PanelReceiver(FeedGui gui) {
this.gui = gui;
this.receiver = null;
initFocusTraversal();
initComponents();
initLayout();
setFieldsVisibility();
}
public PanelReceiver(Receiver receiver) {
this.gui = null;
this.receiver = receiver;
initFocusTraversal();
initComponents();
initLayout();
update();
//set editable false
select_type.setEnabled(false);
text_servername.setEditable(false);
text_serveripv4.setEditable(false);
select_auth_type.setEnabled(false);
//text_keystore.setEditable(false);
text_keyid.setEditable(false);
text_username.setEditable(false);
bu_keyid_select.setVisible(false);
bu_keyid_remove.setVisible(false);
//bu_keystore_select.setVisible(false);
//bu_keystore_remove.setVisible(false);
bu_beam_me_up.setVisible(false);
}
@SuppressWarnings("unchecked")
private void initFocusTraversal() {
Set forwardKeys = new HashSet(getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
forwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,forwardKeys);
}
private void initComponents() {
Vector<JTextComponent> texts = new Vector<JTextComponent>();
this.setBorder(new TitledBorder("Receiver"));
label_type = new JLabel("type");
select_type = new JComboBox();
select_type_model = new DefaultComboBoxModel();
select_type.setModel(select_type_model);
init_select_type_model();
map.put("select_type", select_type);
select_type.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
select_type_changed(select_type.getSelectedIndex());
}
});
label_servername = new JLabel("servername");
text_servername = new JTextField("");
text_servername.setName("text_servername");
map.put("text_servername", text_servername);
texts.add(text_servername);
text_servername.addFocusListener(new FocusAdapter() {
public void focusLost(FocusEvent evt) {
if (evt.isTemporary()) {
return;
}
Receiver r = getReceiver();
if (r==null) return;
String hostname = text_servername.getText();
if (hostname != null && !hostname.equals("")) {
try {
InetAddress addr = InetAddress.getByName(hostname);
String ip = addr.getHostAddress();
text_serveripv4.setText(ip);
r.serveripv4(ip);
} catch (Exception ex) {
text_serveripv4.setText("IP address could not be resolved");
r.serveripv4("");
}
} else {
text_serveripv4.setText("");
r.serveripv4("");
}
}
});
label_serveripv4 = new JLabel("server IPv4");
text_serveripv4 = new JTextField("");
text_serveripv4.setName("text_serveripv4");
map.put("text_serveripv4", text_serveripv4);
texts.add(text_serveripv4);
label_auth_type = new JLabel("auth type");
select_auth_type = new JComboBox();
select_auth_type_model = new DefaultComboBoxModel();
select_auth_type.setModel(select_auth_type_model);
init_select_auth_type_model();
map.put("select_auth_type", select_auth_type);
select_auth_type.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
select_auth_type_changed(select_auth_type.getSelectedIndex());
}
});
// label_keystore = new JLabel("KeyStore");
//
// text_keystore = new JTextField("");
// text_keystore.setEditable(false);
// text_keystore.setName("text_keystore");
// map.put("text_keystore", text_keystore);
// //texts.add(text_keystore);
//
// bu_keystore_select = new JButton("select");
// map.put("bu_keystore_select", bu_keystore_select);
// bu_keystore_select.addActionListener(new ActionListener() {
// public void actionPerformed(ActionEvent e) {
// bu_keystore_select_clicked();
// }
// });
//
// bu_keystore_remove = new JButton("x");
// map.put("bu_keystore_remove", bu_keystore_remove);
// bu_keystore_remove.addActionListener(new ActionListener() {
// public void actionPerformed(ActionEvent e) {
// bu_keystore_remove_clicked();
// }
// });
label_keyid = new JLabel("Key ID");
text_keyid = new JTextField("");
text_keyid.setEditable(false);
text_keyid.setName("text_keyid");
map.put("text_keyid", text_keyid);
//texts.add(text_keyid);
bu_keyid_select = new JButton("select");
map.put("bu_keyid_select", bu_keyid_select);
bu_keyid_select.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
bu_keyid_select_clicked();
}
});
bu_keyid_remove = new JButton("x");
map.put("bu_keyid_remove", bu_keyid_remove);
bu_keyid_remove.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
bu_keyid_remove_clicked();
}
});
label_username = new JLabel("username");
text_username = new JTextField("");
text_username.setName("text_username");
map.put("text_username", text_username);
texts.add(text_username);
bu_beam_me_up = new JButton("<html><b>beam me up!</b></html>");
map.put("bu_beam_me_up", bu_beam_me_up);
bu_beam_me_up.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
bu_beam_me_up_clicked();
}
});
DocumentInstantChangeListener chl = new DocumentInstantChangeListener(this);
for (JTextComponent text : texts) {
if (text instanceof JTextField) {
chl.addTextComponent(text);
}
}
}
public JComponent getComponent(String name) {
return map.get(name);
}
public void setText(String name, String value) {
JComponent c = map.get(name);
if (c!=null && c instanceof JTextComponent) {
((JTextComponent)c).setText(value);
}
}
public String getText(String name) {
JComponent c = map.get(name);
if (c!=null && c instanceof JTextComponent) {
return ((JTextComponent)c).getText();
}
return null;
}
public void setCheck(String name, boolean value) {
JComponent c = map.get(name);
if (c!=null && c instanceof JCheckBox) {
((JCheckBox)c).setSelected(value);
}
}
public boolean getCheck(String name) {
JComponent c = map.get(name);
if (c!=null && c instanceof JCheckBox) {
return ((JCheckBox)c).isSelected();
}
throw new RuntimeException("name "+name+" not a JCheckBox");
}
public void initLayout() {
GridBagLayout gbl = new GridBagLayout();
setLayout(gbl);
GridBagConstraints gbc = new GridBagConstraints();
int insets = 5;
if (gui==null) insets = 2;
// Component: label_type
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
gbc.insets = new Insets(insets,insets,insets,insets);
gbl.setConstraints(label_type,gbc);
add(label_type);
// Component: select_type
gbc.gridx = 1;
gbc.gridy = 0;
gbc.gridwidth = 3;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(select_type,gbc);
add(select_type);
// Component: label_servername
gbc.gridx = 0;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(label_servername,gbc);
add(label_servername);
// Component: text_servername
gbc.gridx = 1;
gbc.gridy = 1;
gbc.gridwidth = 3;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(text_servername,gbc);
add(text_servername);
// Component: label_serveripv4
gbc.gridx = 0;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(label_serveripv4,gbc);
add(label_serveripv4);
// Component: text_serveripv4
gbc.gridx = 1;
gbc.gridy = 2;
gbc.gridwidth = 3;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(text_serveripv4,gbc);
add(text_serveripv4);
// Component: label_auth_type
gbc.gridx = 0;
gbc.gridy = 3;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(label_auth_type,gbc);
add(label_auth_type);
// Component: select_auth_type
gbc.gridx = 1;
gbc.gridy = 3;
gbc.gridwidth = 3;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(select_auth_type,gbc);
add(select_auth_type);
// // Component: label_keystore
// gbc.gridx = 0;
// gbc.gridy = 4;
// gbc.gridwidth = 1;
// gbc.gridheight = 1;
// gbc.weightx = 0.0;
// gbc.weighty = 0.0;
// gbc.anchor = GridBagConstraints.CENTER;
// gbc.fill = GridBagConstraints.BOTH;
// gbc.ipadx = 0;
// gbc.ipady = 0;
// // gbc.insets = new Insets(5,5,5,5);
// gbl.setConstraints(label_keystore,gbc);
// add(label_keystore);
// // Component: text_keystore
// gbc.gridx = 1;
// gbc.gridy = 4;
// gbc.gridwidth = 1;
// gbc.gridheight = 1;
// gbc.weightx = 50.0;
// gbc.weighty = 0.0;
// gbc.anchor = GridBagConstraints.CENTER;
// gbc.fill = GridBagConstraints.BOTH;
// gbc.ipadx = 0;
// gbc.ipady = 0;
//// gbc.insets = new Insets(5,5,5,5);
// gbl.setConstraints(text_keystore,gbc);
// add(text_keystore);
//
// // Component: bu_keystore_select
// gbc.gridx = 2;
// gbc.gridy = 4;
// gbc.gridwidth = 1;
// gbc.gridheight = 1;
// gbc.weightx = 0.0;
// gbc.weighty = 0.0;
// gbc.anchor = GridBagConstraints.CENTER;
// gbc.fill = GridBagConstraints.BOTH;
// gbc.ipadx = 0;
// gbc.ipady = 0;
//// gbc.insets = new Insets(5,5,5,5);
// gbl.setConstraints(bu_keystore_select,gbc);
// add(bu_keystore_select);
//
// // Component: bu_keystore_remove
// gbc.gridx = 3;
// gbc.gridy = 4;
// gbc.gridwidth = 1;
// gbc.gridheight = 1;
// gbc.weightx = 0.0;
// gbc.weighty = 0.0;
// gbc.anchor = GridBagConstraints.CENTER;
// gbc.fill = GridBagConstraints.BOTH;
// gbc.ipadx = 0;
// gbc.ipady = 0;
//// gbc.insets = new Insets(5,5,5,5);
// gbl.setConstraints(bu_keystore_remove,gbc);
// add(bu_keystore_remove);
// Component: label_keyid
gbc.gridx = 0;
gbc.gridy++;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(label_keyid,gbc);
add(label_keyid);
// Component: text_keyid
gbc.gridx = 1;
//gbc.gridy = 5;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(text_keyid,gbc);
add(text_keyid);
// Component: bu_keyid_select
gbc.gridx = 2;
//gbc.gridy = 5;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(bu_keyid_select,gbc);
add(bu_keyid_select);
// Component: bu_keyid_remove
gbc.gridx = 3;
//gbc.gridy = 5;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(bu_keyid_remove,gbc);
add(bu_keyid_remove);
// Component: label_username
gbc.gridx = 0;
gbc.gridy++;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(label_username,gbc);
add(label_username);
// Component: text_usernam
gbc.gridx = 1;
//gbc.gridy = 6;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(text_username,gbc);
add(text_username);
// Component: filler
JLabel filler = new JLabel();
gbc.gridx = 1;
gbc.gridy++;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 100.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
// gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(filler,gbc);
add(filler);
// Component: bu_beam_me_up
Dimension dim = new Dimension(450,45);
bu_beam_me_up.setMinimumSize(dim);
bu_beam_me_up.setMaximumSize(dim);
bu_beam_me_up.setPreferredSize(dim);
gbc.gridx = 0;
gbc.gridy++;
gbc.gridwidth = 4;
gbc.gridheight = 1;
gbc.weightx = 50.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.BOTH;
gbc.ipadx = 0;
gbc.ipady = 0;
gbc.insets = new Insets(5,5,5,5);
gbl.setConstraints(bu_beam_me_up,gbc);
add(bu_beam_me_up);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception ex){
System.out.println("Nimbus look & feel not available");
}
PanelReceiver p = new PanelReceiver((Receiver)null);
JFrame f = new JFrame("PanelReceiver");
f.setContentPane(p);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(1024,768);
f.setVisible(true);
}
// ----- action methods --------------------------------
private File lastDir = null;
public void update() {
Receiver r = getReceiver();
if (r==null) {
r = receiver;
}
if (r==null) {
text_servername.setText("");
text_serveripv4.setText("");
// text_keystore.setText("");
text_keyid.setText("");
text_username.setText("");
//documentListener.saveStates();
select_type.setSelectedIndex(0);
select_auth_type.setSelectedIndex(1);
setFieldsVisibility();
} else {
text_servername.setText(r.getServername());
text_serveripv4.setText(r.getServerIPv4());
//text_keystore.setText(r.getFileKeystore());
text_keyid.setText(r.getKeyID());
text_username.setText(r.getUsername());
//documentListener.saveStates();
select_type.setSelectedItem(r.getType());
select_auth_type.setSelectedItem(r.getAuthType());
setFieldsVisibility();
}
}
private Receiver getReceiver() {
if (gui!=null) {
Feed feed = gui.getCurrentFeed();
if (feed!=null && feed.getFeedinfo()!=null) {
return feed.getFeedinfo().getReceiver();
}
}
return null;
}
public void init_select_type_model() {
for (String t : org.fnppl.opensdx.common.Receiver.SUPPORTED_TRANSFER_TYPES) {
select_type_model.addElement(t);
}
}
public void select_type_changed(int selected) {
setFieldsVisibility();
Receiver r = getReceiver();
if (r==null) return;
r.type((String)select_type_model.getElementAt(selected));
notifyChanges();
}
public void init_select_auth_type_model() {
for (String t : org.fnppl.opensdx.common.Receiver.SUPPORTED_AUTH_TYPES) {
select_auth_type_model.addElement(t);
}
}
public void select_auth_type_changed(int selected) {
setFieldsVisibility();
Receiver r = getReceiver();
if (r==null) return;
r.authtype((String)select_auth_type_model.getElementAt(selected));
notifyChanges();
}
private void setFieldsVisibility() {
String type = (String)select_type.getSelectedItem();
if (type==null) return;
if (type.equals(Receiver.TRANSFER_TYPE_FTP)||type.equals(Receiver.TRANSFER_TYPE_SFTP)||type.equals(Receiver.TRANSFER_TYPE_FTPS)||type.equals(Receiver.TRANSFER_TYPE_WEBDAV)) {
label_servername.setVisible(true);
text_servername.setVisible(true);
label_serveripv4.setVisible(true);
text_serveripv4.setVisible(true);
label_auth_type.setVisible(true);
select_auth_type.setVisible(true);
select_auth_type.setEnabled(false);
select_auth_type.setSelectedItem(Receiver.AUTH_TYPE_LOGIN);
label_username.setVisible(true);
text_username.setVisible(true);
boolean visible = false;
// label_keystore.setVisible(visible);
// text_keystore.setVisible(visible);
// bu_keystore_select.setVisible(visible);
// bu_keystore_remove.setVisible(visible);
label_keyid.setVisible(visible);
text_keyid.setVisible(visible);
bu_keyid_select.setVisible(visible);
bu_keyid_remove.setVisible(visible);
}
else if (type.equals(Receiver.TRANSFER_TYPE_OSDX_FILESERVER)) {
label_servername.setVisible(true);
text_servername.setVisible(true);
label_serveripv4.setVisible(true);
text_serveripv4.setVisible(true);
label_auth_type.setVisible(true);
select_auth_type.setVisible(true);
select_auth_type.setEnabled(false);
select_auth_type.setSelectedItem(Receiver.AUTH_TYPE_KEYFILE);
boolean visible = true;
label_username.setVisible(visible);
text_username.setVisible(visible);
// label_keystore.setVisible(visible);
// text_keystore.setVisible(visible);
// bu_keystore_select.setVisible(visible);
// bu_keystore_remove.setVisible(visible);
label_keyid.setVisible(visible);
text_keyid.setVisible(visible);
bu_keyid_select.setVisible(visible);
bu_keyid_remove.setVisible(visible);
}
//String authType = (String)select_auth_type.getSelectedItem();
//if (authType==null) return;
}
// public void bu_keystore_select_clicked() {
// Receiver r = getReceiver();
// if (r==null) return;
// File f = Dialogs.chooseOpenFile("Open KeyStore", lastDir, "keystore.xml");
// if (f==null) return;
// lastDir = f.getParentFile();
// r.file_keystore(f.getAbsolutePath());
// text_keystore.setText(f.getAbsolutePath());
// notifyChanges();
// }
// public void bu_keystore_remove_clicked() {
// Receiver r = getReceiver();
// if (r==null) return;
// r.file_keystore(null);
// text_keystore.setText("");
// r.keyid(null);
// text_keyid.setText("");
// notifyChanges();
// }
public void bu_keyid_select_clicked() {
Receiver r = getReceiver();
if (r==null) return;
String filenameKeystore = gui.getDefaultKeyStore();
if (filenameKeystore == null) {
Dialogs.showMessage("Please select a keystore file first.");
return;
}
File f = new File(filenameKeystore);
if (!f.exists()) {
Dialogs.showMessage("Sorry. selected keystore file does not exist.");
return;
}
try {
KeyApprovingStore keystore = KeyApprovingStore.fromFile(f, new DefaultMessageHandler());
OSDXKey key = FeedGui.selectPrivateSigningKey(keystore);
if (key!=null) {
r.keyid(key.getKeyID());
text_keyid.setText(key.getKeyID());
notifyChanges();
}
} catch (Exception ex) {
Dialogs.showMessage("Error opening keystore. Please select a valid keytore file.");
ex.printStackTrace();
}
notifyChanges();
}
public void bu_keyid_remove_clicked() {
Receiver r = getReceiver();
if (r==null) return;
r.keyid(null);
text_keyid.setText("");
notifyChanges();
}
public void bu_beam_me_up_clicked() {
if(gui!=null) {
gui.sendFeedToReceiver();
}
}
public void text_changed(JTextComponent text) {
Receiver r = getReceiver();
if (r==null) return;
if (text == text_servername) {
String hostname = text_servername.getText();
r.servername(hostname);
// if (hostname != null && !hostname.equals("")) {
// try {
// InetAddress addr = InetAddress.getByName(hostname);
// String ip = addr.getHostAddress();
// text_serveripv4.setText(ip);
// r.serveripv4(ip);
// //documentListener.saveState(text_serveripv4);
// } catch (Exception ex) {
// text_serveripv4.setText("IP address could not be resolved");
// r.serveripv4("");
// //documentListener.saveState(text_serveripv4);
// }
// } else {
// text_serveripv4.setText("");
// r.serveripv4("");
// //documentListener.saveState(text_serveripv4);
// }
} else if (text == text_serveripv4) {
r.serveripv4(text_serveripv4.getText());
} else if (text == text_username) {
r.username(text_username.getText());
}
notifyChanges();
}
//observable
private Vector<MyObserver> observers = new Vector<MyObserver>();
public void addObserver(MyObserver observer) {
observers.add(observer);
}
public void notifyChanges() {
for (MyObserver ob : observers) {
ob.notifyChange(this);
}
}
}