minor changes:

1. fixed un-toggle button on toolbar when by X window closed
2. introduced property for connection
This commit is contained in:
romanman 2014-05-29 17:51:59 +03:00
parent 0e62e5b58f
commit bb9e0d1bee
10 changed files with 163 additions and 56 deletions

View File

@ -92,6 +92,16 @@ public class SystemProperties {
return Integer.parseInt(prop.getProperty("peer.discovery.port")); return Integer.parseInt(prop.getProperty("peer.discovery.port"));
} }
public String activePeerIP(){
if(prop.isEmpty()) return "54.201.28.117";
return prop.getProperty("peer.active.ip");
}
public int activePeerPort(){
if(prop.isEmpty()) return 30303;
return Integer.parseInt(prop.getProperty("peer.active.port"));
}
public String samplesDir(){ public String samplesDir(){
if(prop.isEmpty()) return "samples"; if(prop.isEmpty()) return "samples";
return prop.getProperty("samples.dir"); return prop.getProperty("samples.dir");

View File

@ -6,13 +6,11 @@ import org.ethereum.manager.MainData;
import javax.swing.*; import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer; import javax.swing.table.TableCellRenderer;
import javax.tools.Tool;
import java.awt.*; import java.awt.*;
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent; import java.awt.event.*;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
/** /**
* www.ethereumJ.com * www.ethereumJ.com
@ -27,7 +25,12 @@ public class BlockChainTable extends JFrame {
private int lastFindIndex = 0; private int lastFindIndex = 0;
public BlockChainTable() { ToolBar toolBar;
public BlockChainTable(ToolBar toolBar) {
this.toolBar = toolBar;
addCloseAction();
final BlockChainTable blockChainTable = this; final BlockChainTable blockChainTable = this;
@ -126,8 +129,20 @@ public class BlockChainTable extends JFrame {
topPanel.add(scrollPane, BorderLayout.CENTER); topPanel.add(scrollPane, BorderLayout.CENTER);
} }
public void addCloseAction(){
this.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
toolBar.chainToggle.setSelected(false);
}
});
}
public static void main(String args[]){ public static void main(String args[]){
BlockChainTable mainFrame = new BlockChainTable(); BlockChainTable mainFrame = new BlockChainTable(null);
mainFrame.setVisible(true); mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }

View File

@ -3,14 +3,20 @@ package org.ethereum.gui;
import java.awt.*; import java.awt.*;
import java.awt.event.ComponentAdapter; import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent; import java.awt.event.ComponentEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.swing.JFrame; import javax.swing.*;
import javax.swing.JPanel; import javax.tools.Tool;
import javax.swing.SwingUtilities;
import org.ethereum.config.SystemProperties;
import org.ethereum.net.client.ClientPeer; import org.ethereum.net.client.ClientPeer;
import org.fife.ui.rsyntaxtextarea.*; import org.fife.ui.rsyntaxtextarea.*;
import org.fife.ui.rtextarea.RTextScrollPane; import org.fife.ui.rtextarea.RTextScrollPane;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* A simple example showing how to modify the fonts and colors used in an * A simple example showing how to modify the fonts and colors used in an
@ -25,12 +31,17 @@ import org.fife.ui.rtextarea.RTextScrollPane;
*/ */
public class ConnectionConsoleWindow extends JFrame implements PeerListener{ public class ConnectionConsoleWindow extends JFrame implements PeerListener{
Logger logger = LoggerFactory.getLogger(getClass());
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private boolean autoScroll = false; private boolean autoScroll = false;
private RSyntaxTextArea textArea; private RSyntaxTextArea textArea;
ToolBar toolBar = null;
/** /**
* ERROR (exceptions) WARN (when something happens that's not supposed to) * ERROR (exceptions) WARN (when something happens that's not supposed to)
* INFO (wire output) * INFO (wire output)
@ -38,13 +49,15 @@ public class ConnectionConsoleWindow extends JFrame implements PeerListener{
* TRACE (start/end method) * TRACE (start/end method)
*/ */
public ConnectionConsoleWindow() { public ConnectionConsoleWindow(ToolBar toolBar) {
final ConnectionConsoleWindow thisConsole = this; final ConnectionConsoleWindow thisConsole = this;
this.toolBar = toolBar;
java.net.URL url = ClassLoader.getSystemResource("ethereum-icon.png"); java.net.URL url = ClassLoader.getSystemResource("ethereum-icon.png");
Toolkit kit = Toolkit.getDefaultToolkit(); Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url); Image img = kit.createImage(url);
this.setIconImage(img); this.setIconImage(img);
addCloseAction();
JPanel cp = new JPanel(new BorderLayout()); JPanel cp = new JPanel(new BorderLayout());
@ -68,11 +81,7 @@ public class ConnectionConsoleWindow extends JFrame implements PeerListener{
pack(); pack();
setLocation(775, 390); setLocation(775, 390);
this.addComponentListener(new ComponentAdapter() { Thread t = new Thread() {
@Override
public void componentShown(ComponentEvent e) {
Thread t = new Thread() {
public void run() { public void run() {
// Peer Server Zero: peer discovery // Peer Server Zero: peer discovery
@ -91,18 +100,20 @@ public class ConnectionConsoleWindow extends JFrame implements PeerListener{
// new ClientPeer(thisConsole).connect("54.204.10.41", 30303); // new ClientPeer(thisConsole).connect("54.204.10.41", 30303);
// RomanJ // RomanJ
new ClientPeer(thisConsole).connect("54.211.14.10", 40404); // new ClientPeer(thisConsole).connect("54.211.14.10", 40404);
new ClientPeer(thisConsole).connect(SystemProperties.CONFIG.activePeerIP(),
SystemProperties.CONFIG.activePeerPort());
} }
}; };
t.start(); t.start();
}
});
} }
@Override @Override
public void console(final String output) { public void console(final String output) {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@ -153,13 +164,24 @@ public class ConnectionConsoleWindow extends JFrame implements PeerListener{
} }
public void addCloseAction(){
this.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
toolBar.logToggle.setSelected(false);
}
});
}
public static void main(String[] args) { public static void main(String[] args) {
// Start all Swing applications on the EDT. // Start all Swing applications on the EDT.
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
new ConnectionConsoleWindow().setVisible(true); new ConnectionConsoleWindow(null).setVisible(true);
} }
}); });
} }

View File

@ -3,15 +3,12 @@ package org.ethereum.gui;
import org.ethereum.manager.MainData; import org.ethereum.manager.MainData;
import java.awt.*; import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import javax.swing.JFrame; import javax.swing.*;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer; import javax.swing.table.TableCellRenderer;
@ -30,9 +27,13 @@ public class PeersTableWindow extends JFrame{
private JScrollPane scrollPane; private JScrollPane scrollPane;
private Timer updater = new Timer(); private Timer updater = new Timer();
private ToolBar toolBar;
// Constructor of main frame // Constructor of main frame
public PeersTableWindow() { public PeersTableWindow(ToolBar toolBar) {
this.toolBar = toolBar;
addCloseAction();
// Set the frame characteristics // Set the frame characteristics
setTitle("Ethereum Peers"); setTitle("Ethereum Peers");
@ -96,9 +97,21 @@ public class PeersTableWindow extends JFrame{
MainData.instance.startPeerDiscovery(); MainData.instance.startPeerDiscovery();
} }
public void addCloseAction(){
this.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
toolBar.peersToggle.setSelected(false);
}
});
}
public static void main(String args[]) { public static void main(String args[]) {
PeersTableWindow mainFrame = new PeersTableWindow(); PeersTableWindow mainFrame = new PeersTableWindow(null);
mainFrame.setVisible(true); mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }

View File

@ -6,10 +6,7 @@ import org.fife.ui.rtextarea.RTextScrollPane;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.*;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.*; import java.io.*;
import java.util.Scanner; import java.util.Scanner;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -75,8 +72,12 @@ public class SerpentEditor extends JFrame {
final JPanel contentPane; final JPanel contentPane;
JFileChooser fileChooser = null; JFileChooser fileChooser = null;
public SerpentEditor() { ToolBar toolBar = null;
public SerpentEditor(ToolBar toolBar) {
this.toolBar = toolBar;
addCloseAction();
contentPane = new JPanel(new BorderLayout()); contentPane = new JPanel(new BorderLayout());
final JFrame mainWindow = this; final JFrame mainWindow = this;
@ -329,15 +330,13 @@ public class SerpentEditor extends JFrame {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
File file = null; File file = null;
if (fileChooser == null) file = callFileChooser(); if (fileChooser == null || fileChooser.getSelectedFile() == null) {
file = callFileChooser();
if (fileChooser.getSelectedFile() == null)
return;
}
else{ else{
if (fileChooser.getSelectedFile() == null){
file = callFileChooser();
}else{
file = fileChooser.getSelectedFile(); file = fileChooser.getSelectedFile();
}
} }
try { try {
@ -492,11 +491,23 @@ public class SerpentEditor extends JFrame {
return file; return file;
} }
public void addCloseAction(){
this.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
toolBar.editorToggle.setSelected(false);
}
});
}
public static void main(String[] args) { public static void main(String[] args) {
// Start all Swing applications on the EDT. // Start all Swing applications on the EDT.
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
new SerpentEditor().setVisible(true); new SerpentEditor(null).setVisible(true);
} }
}); });
} }

View File

@ -7,6 +7,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.swing.*; import javax.swing.*;
import javax.tools.Tool;
import java.awt.*; import java.awt.*;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
@ -29,6 +30,12 @@ public class ToolBar extends JFrame {
WalletWindow walletWindow = null; WalletWindow walletWindow = null;
SerpentEditor serpentEditor = null; SerpentEditor serpentEditor = null;
JToggleButton editorToggle;
JToggleButton logToggle;
JToggleButton peersToggle;
JToggleButton chainToggle;
JToggleButton walletToggle;
public ToolBar() throws HeadlessException { public ToolBar() throws HeadlessException {
@ -82,7 +89,7 @@ public class ToolBar extends JFrame {
ImageIcon image_5 = new ImageIcon(imageURL_5); ImageIcon image_5 = new ImageIcon(imageURL_5);
JToggleButton editorToggle = new JToggleButton(""); editorToggle = new JToggleButton("");
editorToggle.setIcon(image_1); editorToggle.setIcon(image_1);
editorToggle.setContentAreaFilled(true); editorToggle.setContentAreaFilled(true);
editorToggle.setToolTipText("Serpent Editor"); editorToggle.setToolTipText("Serpent Editor");
@ -97,7 +104,7 @@ public class ToolBar extends JFrame {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
if (serpentEditor == null) if (serpentEditor == null)
serpentEditor = new SerpentEditor(); serpentEditor = new SerpentEditor(ToolBar.this);
serpentEditor.setVisible(true); serpentEditor.setVisible(true);
} }
}); });
@ -107,7 +114,7 @@ public class ToolBar extends JFrame {
} }
}); });
JToggleButton logToggle = new JToggleButton(); logToggle = new JToggleButton();
logToggle.setIcon(image_2); logToggle.setIcon(image_2);
logToggle.setToolTipText("Log Console"); logToggle.setToolTipText("Log Console");
logToggle.setContentAreaFilled(true); logToggle.setContentAreaFilled(true);
@ -123,7 +130,7 @@ public class ToolBar extends JFrame {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
if (connectionConsoleWindow == null) if (connectionConsoleWindow == null)
connectionConsoleWindow = new ConnectionConsoleWindow(); connectionConsoleWindow = new ConnectionConsoleWindow(ToolBar.this);
connectionConsoleWindow.setVisible(true); connectionConsoleWindow.setVisible(true);
} }
}); });
@ -133,7 +140,7 @@ public class ToolBar extends JFrame {
} }
}); });
JToggleButton peersToggle = new JToggleButton(); peersToggle = new JToggleButton();
peersToggle.setIcon(image_3); peersToggle.setIcon(image_3);
peersToggle.setToolTipText("Peers"); peersToggle.setToolTipText("Peers");
peersToggle.setContentAreaFilled(true); peersToggle.setContentAreaFilled(true);
@ -148,7 +155,7 @@ public class ToolBar extends JFrame {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
if (mainFrame == null) if (mainFrame == null)
mainFrame = new PeersTableWindow(); mainFrame = new PeersTableWindow(ToolBar.this);
mainFrame.setVisible( true ); mainFrame.setVisible( true );
} }
}); });
@ -158,7 +165,7 @@ public class ToolBar extends JFrame {
} }
}); });
JToggleButton chainToggle = new JToggleButton(); chainToggle = new JToggleButton();
chainToggle.setIcon(image_4); chainToggle.setIcon(image_4);
chainToggle.setToolTipText("Block Chain"); chainToggle.setToolTipText("Block Chain");
chainToggle.setContentAreaFilled(true); chainToggle.setContentAreaFilled(true);
@ -174,7 +181,7 @@ public class ToolBar extends JFrame {
public void run() { public void run() {
if (blockChainWindow == null) if (blockChainWindow == null)
blockChainWindow = new BlockChainTable(); blockChainWindow = new BlockChainTable(ToolBar.this);
blockChainWindow.setVisible(true); blockChainWindow.setVisible(true);
} }
}); });
@ -184,7 +191,7 @@ public class ToolBar extends JFrame {
} }
}); });
JToggleButton walletToggle = new JToggleButton(); walletToggle = new JToggleButton();
walletToggle.setIcon(image_5); walletToggle.setIcon(image_5);
walletToggle.setToolTipText("Wallet"); walletToggle.setToolTipText("Wallet");
walletToggle.setContentAreaFilled(true); walletToggle.setContentAreaFilled(true);
@ -200,7 +207,7 @@ public class ToolBar extends JFrame {
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
public void run() { public void run() {
if (walletWindow == null) if (walletWindow == null)
walletWindow = new WalletWindow(); walletWindow = new WalletWindow(ToolBar.this);
walletWindow.setVisible(true); walletWindow.setVisible(true);
} }
}); });

View File

@ -53,7 +53,7 @@ public class WalletSumPanel extends JPanel{
payOutLabel.addMouseListener(new MouseAdapter() { payOutLabel.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
System.out.println("boom"); JOptionPane.showMessageDialog(null, "Under construction");
} }
}); });

View File

@ -5,10 +5,13 @@ import org.ethereum.core.Wallet;
import org.ethereum.manager.MainData; import org.ethereum.manager.MainData;
import javax.swing.*; import javax.swing.*;
import javax.tools.Tool;
import java.awt.*; import java.awt.*;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.URL; import java.net.URL;
/** /**
@ -19,8 +22,12 @@ import java.net.URL;
public class WalletWindow extends JFrame implements Wallet.WalletListener{ public class WalletWindow extends JFrame implements Wallet.WalletListener{
WalletWindow walletWindow; WalletWindow walletWindow;
ToolBar toolBar;
public WalletWindow() { public WalletWindow(ToolBar toolBar) {
addCloseAction();
this.toolBar = toolBar;
walletWindow = this; walletWindow = this;
java.net.URL url = ClassLoader.getSystemResource("ethereum-icon.png"); java.net.URL url = ClassLoader.getSystemResource("ethereum-icon.png");
@ -92,6 +99,18 @@ public class WalletWindow extends JFrame implements Wallet.WalletListener{
contentPane.repaint(); contentPane.repaint();
} }
public void addCloseAction(){
this.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
toolBar.walletToggle.setSelected(false);
}
});
}
@Override @Override
public void valueChanged() { public void valueChanged() {
loadWallet(); loadWallet();

View File

@ -8,4 +8,6 @@ log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{HH:mm:ss} [%c{1}] %m%n log4j.appender.stdout.layout.ConversionPattern= %d{HH:mm:ss} [%c{1}] %m%n
# filter noisy classes # filter noisy classes
log4j.logger.org.ethereum.net.peerdiscovery = WARN log4j.logger.org.ethereum.net.peerdiscovery = WARN
log4j.logger.java.nio = WARN
log4j.logger.io.netty = WARN

View File

@ -10,6 +10,14 @@ server.acceptConnections = false
peer.discovery.ip = 54.201.28.117 peer.discovery.ip = 54.201.28.117
peer.discovery.port = 30303 peer.discovery.port = 30303
# active peer ip and port
# that is the peer through
# we get the chain: [54.201.28.117] port: [30303]
peer.active.ip = 151.64.223.120
peer.active.port = 30304
# specify if the mechanism # specify if the mechanism
# to discover more and more # to discover more and more
# peers and check the already # peers and check the already