summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-12-12 23:19:21 +0000
committerBernard Normier <bernard@zeroc.com>2006-12-12 23:19:21 +0000
commit5e28e3a630f7eadc09c215d7c684faae7ffecca4 (patch)
tree31d40d963d9119e23e99a69fbebd6d1bb5293f84 /java/src
parenthttp://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=1616. Fixed SSL bug with (diff)
downloadice-5e28e3a630f7eadc09c215d7c684faae7ffecca4.tar.bz2
ice-5e28e3a630f7eadc09c215d7c684faae7ffecca4.tar.xz
ice-5e28e3a630f7eadc09c215d7c684faae7ffecca4.zip
Completed ShowLogDialog implementation
Diffstat (limited to 'java/src')
-rwxr-xr-xjava/src/IceGridGUI/Coordinator.java47
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Node.java5
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Root.java57
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Server.java5
-rw-r--r--java/src/IceGridGUI/LiveDeployment/ShowLogDialog.java325
-rw-r--r--java/src/IceGridGUI/LiveDeployment/ShowLogPrefsDialog.java162
6 files changed, 502 insertions, 99 deletions
diff --git a/java/src/IceGridGUI/Coordinator.java b/java/src/IceGridGUI/Coordinator.java
index ddaec965c7c..b7821807165 100755
--- a/java/src/IceGridGUI/Coordinator.java
+++ b/java/src/IceGridGUI/Coordinator.java
@@ -1548,23 +1548,23 @@ public class Coordinator
{
if(file != null)
{
- _saveChooser.setSelectedFile(file);
+ _saveXMLChooser.setSelectedFile(file);
}
else
{
- _saveChooser.setCurrentDirectory(_openChooser.getCurrentDirectory());
+ _saveXMLChooser.setCurrentDirectory(_openChooser.getCurrentDirectory());
}
- int result = _saveChooser.showSaveDialog(_mainFrame);
+ int result = _saveXMLChooser.showSaveDialog(_mainFrame);
if(file == null || result == JFileChooser.APPROVE_OPTION)
{
- _openChooser.setCurrentDirectory(_saveChooser.getCurrentDirectory());
+ _openChooser.setCurrentDirectory(_saveXMLChooser.getCurrentDirectory());
}
if(result == JFileChooser.APPROVE_OPTION)
{
- file = _saveChooser.getSelectedFile();
+ file = _saveXMLChooser.getSelectedFile();
}
else
{
@@ -1608,8 +1608,12 @@ public class Coordinator
}
return file;
}
+
+ public JFileChooser getSaveLogChooser()
+ {
+ return _saveLogChooser;
+ }
-
static private Ice.Properties createProperties(Ice.StringSeqHolder args)
{
Ice.Properties properties = Ice.Util.createProperties();
@@ -1670,10 +1674,10 @@ public class Coordinator
Runtime.getRuntime().addShutdownHook(_shutdownHook);
- _saveChooser = new JFileChooser(
+ _saveXMLChooser = new JFileChooser(
_prefs.get("current directory", null));
- _saveChooser.addChoosableFileFilter(new FileFilter()
+ _saveXMLChooser.addChoosableFileFilter(new FileFilter()
{
public boolean accept(File f)
{
@@ -1686,11 +1690,31 @@ public class Coordinator
}
});
+ _saveLogChooser = new JFileChooser(
+ _prefs.get("current directory", null));
+
+ _saveLogChooser.addChoosableFileFilter(new FileFilter()
+ {
+ public boolean accept(File f)
+ {
+ return f.isDirectory() ||
+ f.getName().endsWith(".out") ||
+ f.getName().endsWith(".err") ||
+ f.getName().endsWith(".log") ||
+ f.getName().endsWith(".txt");
+ }
+
+ public String getDescription()
+ {
+ return ".out .err .log .txt files";
+ }
+ });
+
javax.swing.UIManager.put("FileChooser.readOnly", Boolean.TRUE);
- _openChooser = new JFileChooser(_saveChooser.getCurrentDirectory());
+ _openChooser = new JFileChooser(_saveXMLChooser.getCurrentDirectory());
- _openChooser.addChoosableFileFilter(_saveChooser.getChoosableFileFilters()[1]);
+ _openChooser.addChoosableFileFilter(_saveXMLChooser.getChoosableFileFilters()[1]);
final int MENU_MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
@@ -2421,7 +2445,8 @@ public class Coordinator
private final Thread _shutdownHook;
private JFileChooser _openChooser;
- private JFileChooser _saveChooser;
+ private JFileChooser _saveXMLChooser;
+ private JFileChooser _saveLogChooser;
private Process _icegridadminProcess;
private String _fileParser;
diff --git a/java/src/IceGridGUI/LiveDeployment/Node.java b/java/src/IceGridGUI/LiveDeployment/Node.java
index bb70bbd6415..986fd65223e 100755
--- a/java/src/IceGridGUI/LiveDeployment/Node.java
+++ b/java/src/IceGridGUI/LiveDeployment/Node.java
@@ -64,6 +64,11 @@ class Node extends ListTreeNode
{
return "Node " + _id + " " + (stdout ? "Stdout" : "Stderr");
}
+
+ public String getDefaultFilename()
+ {
+ return _id + (stdout ? ".out" : ".err");
+ }
});
}
diff --git a/java/src/IceGridGUI/LiveDeployment/Root.java b/java/src/IceGridGUI/LiveDeployment/Root.java
index cafe9e8d64d..d545c96b5af 100755
--- a/java/src/IceGridGUI/LiveDeployment/Root.java
+++ b/java/src/IceGridGUI/LiveDeployment/Root.java
@@ -37,7 +37,8 @@ public class Root extends ListArrayTreeNode
_coordinator = coordinator;
_childrenArray[0] = _slaves;
_childrenArray[1] = _nodes;
-
+ _messageSizeMax = Ice.Util.getInstance(_coordinator.getCommunicator()).messageSizeMax();
+
_tree = new JTree(this, true);
_treeModel = (DefaultTreeModel)_tree.getModel();
_objectDialog = new ObjectDialog(this);
@@ -866,6 +867,12 @@ public class Root extends ListArrayTreeNode
{
return "Registry " + _label + " " + (stdout ? "Stdout" : "Stderr");
}
+
+ public String getDefaultFilename()
+ {
+ return _replicaName + (stdout ? ".out" : ".err");
+ }
+
});
}
@@ -884,8 +891,7 @@ public class Root extends ListArrayTreeNode
if(d == null)
{
d = new ShowLogDialog(this, factory,
- _logPeriod, _logInitialLines,
- _logMaxLines, _logMaxSize, _logMaxReadLines);
+ _logMaxLines, _logMaxSize, _logInitialLines, _logMaxReadSize, _logPeriod);
_showLogDialogMap.put(factory.getTitle(), d);
}
@@ -911,25 +917,47 @@ public class Root extends ListArrayTreeNode
_showLogDialogMap.clear();
}
+ public int getMessageSizeMax()
+ {
+ return _messageSizeMax;
+ }
+
+
+ public void setLogPrefs(int maxLines, int maxSize, int initialLines, int maxReadSize, int period)
+ {
+ _logMaxLines = maxLines;
+ _logMaxSize = maxSize;
+ _logInitialLines = initialLines;
+ _logMaxReadSize = maxReadSize;
+ _logPeriod = period;
+
+ storeLogPrefs();
+ }
+
private void loadLogPrefs()
{
Preferences logPrefs = _coordinator.getPrefs().node("Log");
- _logPeriod = logPrefs.getInt("period", 300);
- _logInitialLines = logPrefs.getInt("initialLines", 10);
_logMaxLines = logPrefs.getInt("maxLines", 500);
_logMaxSize = logPrefs.getInt("maxSize", 20000);
- _logMaxReadLines = logPrefs.getInt("maxReadLines", 50);
+ _logInitialLines = logPrefs.getInt("initialLines", 10);
+ _logMaxReadSize = logPrefs.getInt("maxReadSize", 10000);
+ _logPeriod = logPrefs.getInt("period", 300);
+
+ if(_logMaxReadSize + 512 > _messageSizeMax)
+ {
+ _logMaxReadSize = _messageSizeMax - 512;
+ }
}
private void storeLogPrefs()
{
Preferences logPrefs = _coordinator.getPrefs().node("Log");
- logPrefs.putInt("period", _logPeriod);
- logPrefs.putInt("initialLines", _logInitialLines);
logPrefs.putInt("maxLines", _logMaxLines);
logPrefs.putInt("maxSize", _logMaxSize);
- logPrefs.putInt("maxReadLines", _logMaxReadLines);
+ logPrefs.putInt("initialLines", _logInitialLines);
+ logPrefs.putInt("maxReadSize", _logMaxReadSize);
+ logPrefs.putInt("period", _logPeriod);
}
@@ -1000,13 +1028,16 @@ public class Root extends ListArrayTreeNode
//
// ShowLogDialog
//
+ final int _messageSizeMax;
+
java.util.Map _showLogDialogMap = new java.util.HashMap();
- int _logPeriod;
- int _logInitialLines;
+
int _logMaxLines;
int _logMaxSize;
- int _logMaxReadLines;
-
+ int _logInitialLines;
+ int _logMaxReadSize;
+ int _logPeriod;
+
static private RegistryEditor _editor;
static private JPopupMenu _popup;
static private DefaultTreeCellRenderer _cellRenderer;
diff --git a/java/src/IceGridGUI/LiveDeployment/Server.java b/java/src/IceGridGUI/LiveDeployment/Server.java
index d774e004ae9..9aa3a57d973 100755
--- a/java/src/IceGridGUI/LiveDeployment/Server.java
+++ b/java/src/IceGridGUI/LiveDeployment/Server.java
@@ -192,6 +192,11 @@ class Server extends ListArrayTreeNode
{
return "Server " + _id + " " + (stdout ? "Stdout" : "Stderr");
}
+
+ public String getDefaultFilename()
+ {
+ return _id + (stdout ? ".out" : ".err");
+ }
});
}
diff --git a/java/src/IceGridGUI/LiveDeployment/ShowLogDialog.java b/java/src/IceGridGUI/LiveDeployment/ShowLogDialog.java
index c41ef275805..92a0ec8f2bb 100644
--- a/java/src/IceGridGUI/LiveDeployment/ShowLogDialog.java
+++ b/java/src/IceGridGUI/LiveDeployment/ShowLogDialog.java
@@ -16,21 +16,24 @@ import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
+import javax.swing.ButtonGroup;
import javax.swing.JComponent;
import javax.swing.JDialog;
+import javax.swing.JFileChooser;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
-import javax.swing.JRadioButton;
+import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
+import javax.swing.JToggleButton;
import javax.swing.JToolBar;
+import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import com.jgoodies.looks.BorderStyle;
@@ -49,6 +52,8 @@ class ShowLogDialog extends JDialog
throws Ice.UserException;
String getTitle();
+
+ String getDefaultFilename();
}
private class FIFOTextArea extends JTextArea
@@ -116,14 +121,15 @@ class ShowLogDialog extends JDialog
{
ReaderThread()
{
- _threadInitialLines = _initialLines;
_threadMaxLines = _maxLines;
_threadMaxSize = _maxSize;
- _threadMaxReadLines = _maxReadLines;
+ _threadInitialLines = _initialLines;
+ _threadMaxReadSize = _maxReadSize;
+ _threadPeriod = _period;
- _play.setEnabled(false);
+ _playButton.setSelected(true);
+ _playItem.setSelected(true);
_pause.setEnabled(true);
- _stop.setEnabled(true);
}
private void openError(final String message)
@@ -219,7 +225,7 @@ class ShowLogDialog extends JDialog
{
try
{
- wait(_period);
+ wait(_threadPeriod);
}
catch(InterruptedException e)
{
@@ -244,8 +250,8 @@ class ShowLogDialog extends JDialog
{
int maxLines;
int maxSize;
- int maxReadLines;
-
+ int maxReadSize;
+
synchronized(this)
{
if(_done || _paused)
@@ -255,14 +261,14 @@ class ShowLogDialog extends JDialog
maxLines = _threadMaxLines;
maxSize = _threadMaxSize;
- maxReadLines = _threadMaxReadLines;
+ maxReadSize = _threadMaxReadSize;
}
Ice.StringSeqHolder linesHolder = new Ice.StringSeqHolder();
try
{
- eofEncountered = _p.read(_maxReadSize, linesHolder);
+ eofEncountered = _p.read(maxReadSize, linesHolder);
}
catch(IceGrid.FileNotAvailableException e)
{
@@ -321,41 +327,49 @@ class ShowLogDialog extends JDialog
synchronized void pause()
{
- assert !_paused;
- _paused = true;
- notify();
+ if(!_paused)
+ {
+ _paused = true;
+ notify();
+ }
}
synchronized void terminate()
{
- _done = true;
- notify();
+ if(!_done)
+ {
+ _done = true;
+ notify();
+ }
}
synchronized void play()
{
- assert _paused;
- _paused = false;
- notify();
+ if(_paused)
+ {
+ _paused = false;
+ notify();
+ }
}
- synchronized void setPrefs(int initialLines, int maxLines, int maxSize, int maxReadLines)
+ synchronized void setPrefs()
{
- _threadInitialLines = initialLines;
- _threadMaxLines = maxLines;
- _threadMaxSize = maxSize;
- _threadMaxReadLines = maxReadLines;
+ _threadMaxLines = _maxLines;
+ _threadMaxSize = _maxSize;
+ _threadInitialLines = _initialLines;
+ _threadMaxReadSize = _maxReadSize;
+ _threadPeriod = _period;
}
private FileIteratorPrx _p;
private boolean _done = false;
private boolean _paused = false;
- private int _threadInitialLines;
private int _threadMaxLines;
private int _threadMaxSize;
- private int _threadMaxReadLines;
-
+ private int _threadInitialLines;
+ private int _threadMaxReadSize;
+ private int _threadPeriod;
}
private class MenuBar extends JMenuBar
@@ -365,24 +379,99 @@ class ShowLogDialog extends JDialog
putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.BOTH);
putClientProperty(PlasticLookAndFeel.BORDER_STYLE_KEY, BorderStyle.SEPARATOR);
+ final int MENU_MASK = java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
+
//
// File menu
//
JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic(java.awt.event.KeyEvent.VK_F);
add(fileMenu);
- fileMenu.add(_pause);
- fileMenu.add(_play);
- fileMenu.add(_stop);
+
+ ButtonGroup bg = new ButtonGroup();
+
+ _pauseItem = new JRadioButtonMenuItem(_pause);
+ fileMenu.add(_pauseItem);
+ bg.add(_pauseItem);
+ _playItem = new JRadioButtonMenuItem(_play);
+ fileMenu.add(_playItem);
+ bg.add(_playItem);
+ _stopItem = new JRadioButtonMenuItem(_stop);
+ fileMenu.add(_stopItem);
+ bg.add(_stopItem);
fileMenu.addSeparator();
- fileMenu.add(new AbstractAction("Save as...")
+
+ Action save = new AbstractAction("Save As...")
{
- public void actionPerformed(ActionEvent e)
+ public void actionPerformed(ActionEvent e)
{
- // todo
- }
+ JFileChooser fileChooser = _root.getCoordinator().getSaveLogChooser();
+
+ fileChooser.setSelectedFile(new java.io.File(fileChooser.getCurrentDirectory(),
+ _factory.getDefaultFilename()));
+
+ java.io.File file = null;
- });
+ while(file == null)
+ {
+ int result = fileChooser.showSaveDialog(ShowLogDialog.this);
+ if(result == JFileChooser.APPROVE_OPTION)
+ {
+ file = fileChooser.getSelectedFile();
+
+ if(file != null)
+ {
+ if(!file.exists() && file.getName().indexOf('.') == -1)
+ {
+ file = new java.io.File(file.getAbsolutePath() + ".log");
+ }
+
+ java.io.OutputStreamWriter os = null;
+
+ try
+ {
+ os = new java.io.OutputStreamWriter(new java.io.FileOutputStream(file));
+ String txt = _textArea.getText();
+ if(txt == null)
+ {
+ txt = "";
+ }
+ os.write(txt, 0, txt.length());
+ }
+ catch(java.io.IOException io)
+ {
+ JOptionPane.showMessageDialog(
+ ShowLogDialog.this,
+ io.toString(),
+ "Cannot write file",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ finally
+ {
+ if(os != null)
+ {
+ try
+ {
+ os.close();
+ }
+ catch(java.io.IOException io)
+ {
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ break; // while
+ }
+ }
+ }
+ };
+ save.putValue(Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke(KeyEvent.VK_S, MENU_MASK));
+ save.putValue(Action.SHORT_DESCRIPTION, "Save As...");
+ fileMenu.add(save);
fileMenu.addSeparator();
fileMenu.add(new AbstractAction("Close")
@@ -395,30 +484,40 @@ class ShowLogDialog extends JDialog
JMenu editMenu = new JMenu("Edit");
editMenu.setMnemonic(java.awt.event.KeyEvent.VK_E);
add(editMenu);
- editMenu.add(new AbstractAction("Copy")
+
+ Action copy = new AbstractAction("Copy")
{
public void actionPerformed(ActionEvent e)
{
_textArea.copy();
}
+
+ };
+ copy.putValue(Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke(KeyEvent.VK_C, MENU_MASK));
+ copy.putValue(Action.SHORT_DESCRIPTION, "Copy");
+ editMenu.add(copy);
- });
editMenu.addSeparator();
- editMenu.add(new AbstractAction("Select all")
+ Action selectAll = new AbstractAction("Select All")
{
public void actionPerformed(ActionEvent e)
{
_textArea.grabFocus();
_textArea.selectAll();
}
+ };
+ selectAll.putValue(Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke(KeyEvent.VK_A, MENU_MASK));
+ selectAll.putValue(Action.SHORT_DESCRIPTION, "Select All");
- });
+ editMenu.add(selectAll);
editMenu.addSeparator();
- editMenu.add(new AbstractAction("Preferences")
+ editMenu.add(new AbstractAction("Preferences...")
{
public void actionPerformed(ActionEvent e)
{
- // todo
+ new ShowLogPrefsDialog(ShowLogDialog.this);
}
});
}
@@ -433,33 +532,37 @@ class ShowLogDialog extends JDialog
setFloatable(false);
putClientProperty("JToolBar.isRollover", Boolean.TRUE);
- JButton button = new JButton(_pause);
- button.setText(null);
- button.setIcon(Utils.getIcon("/icons/16x16/pause.png"));
- add(button);
- button = new JButton(_play);
- button.setText(null);
- button.setIcon(Utils.getIcon("/icons/16x16/start.png"));
- add(button);
- button = new JButton(_stop);
- button.setText(null);
- button.setIcon(Utils.getIcon("/icons/16x16/stop.png"));
- add(button);
-
+ _pauseButton = new JToggleButton(_pause);
+ _pauseButton.setText(null);
+ _pauseButton.setIcon(Utils.getIcon("/icons/16x16/pause.png"));
+ add(_pauseButton);
+ _playButton = new JToggleButton(_play);
+ _playButton.setText(null);
+ _playButton.setIcon(Utils.getIcon("/icons/16x16/start.png"));
+ add(_playButton);
+ _stopButton = new JToggleButton(_stop);
+ _stopButton.setText(null);
+ _stopButton.setIcon(Utils.getIcon("/icons/16x16/stop.png"));
+ add(_stopButton);
+
+ ButtonGroup bg = new ButtonGroup();
+ bg.add(_pauseButton);
+ bg.add(_playButton);
+ bg.add(_stopButton);
}
}
ShowLogDialog(Root root, FileIteratorFactory factory,
- int period, int initialLines, int maxLines, int maxSize, int maxReadLines)
+ int maxLines, int maxSize, int initialLines, int maxReadSize, int period)
{
super(root.getCoordinator().getMainFrame(), factory.getTitle() + " - IceGrid Admin", false);
- _period = period;
- _initialLines = initialLines;
_maxLines = maxLines;
_maxSize = maxSize;
- _maxReadLines = maxReadLines;
+ _initialLines = initialLines;
+ _maxReadSize = maxReadSize;
+ _period = period;
_factory = factory;
_root = root;
@@ -479,8 +582,6 @@ class ShowLogDialog extends JDialog
pause();
}
};
- _pause.setEnabled(false);
-
_play = new AbstractAction("Play")
{
@@ -488,9 +589,7 @@ class ShowLogDialog extends JDialog
{
play();
}
- };
- _play.setEnabled(false);
-
+ };
_stop = new AbstractAction("Stop")
{
@@ -499,7 +598,6 @@ class ShowLogDialog extends JDialog
stopReading();
}
};
- _stop.setEnabled(false);
setJMenuBar(new MenuBar());
getContentPane().add(new ToolBar(),
@@ -521,8 +619,8 @@ class ShowLogDialog extends JDialog
void pause()
{
_thread.pause();
- _pause.setEnabled(false);
- _play.setEnabled(true);
+ _pauseItem.setSelected(true);
+ _pauseButton.setSelected(true);
}
void stopReading()
@@ -540,8 +638,8 @@ class ShowLogDialog extends JDialog
}
_thread = null;
- _stop.setEnabled(false);
- _play.setEnabled(true);
+ _stopItem.setSelected(true);
+ _stopButton.setSelected(true);
_pause.setEnabled(false);
}
}
@@ -551,9 +649,9 @@ class ShowLogDialog extends JDialog
if(_thread != null)
{
_thread.play();
- _play.setEnabled(false);
+ _playItem.setSelected(true);
+ _playButton.setSelected(true);
_pause.setEnabled(true);
- _stop.setEnabled(true);
}
else
{
@@ -562,6 +660,76 @@ class ShowLogDialog extends JDialog
}
}
+ int getMaxLines()
+ {
+ return _maxLines;
+ }
+
+ int getMaxSize()
+ {
+ return _maxSize;
+ }
+
+ int getInitialLines()
+ {
+ return _initialLines;
+ }
+
+ int getMaxReadSize()
+ {
+ return _maxReadSize;
+ }
+
+ int getPeriod()
+ {
+ return _period;
+ }
+
+ void setPrefs(int maxLines, int maxSize, int initialLines, int maxReadSize, int period)
+ {
+ if(maxLines < 50)
+ {
+ maxLines = 50;
+ }
+ _maxLines = maxLines;
+
+ if(maxSize < 1000)
+ {
+ maxSize = 1000;
+ }
+ _maxSize = maxSize;
+
+ _initialLines = initialLines;
+
+ if(maxReadSize < 100)
+ {
+ maxReadSize = 100;
+ }
+ else if(maxReadSize + 512 > _root.getMessageSizeMax())
+ {
+ maxReadSize = _root.getMessageSizeMax() - 512;
+ }
+ _maxReadSize = maxReadSize;
+
+ if(period < 200)
+ {
+ period = 200;
+ }
+ else if(period > 5000)
+ {
+ period = 5000;
+ }
+ _period = period;
+
+ if(_thread != null)
+ {
+ _thread.setPrefs();
+ }
+
+ _root.setLogPrefs(_maxLines, _maxSize, _initialLines, _maxReadSize, _period);
+
+ }
+
void close(boolean notifyRoot)
{
stopReading();
@@ -575,18 +743,25 @@ class ShowLogDialog extends JDialog
private final Root _root;
private final FileIteratorFactory _factory;
- private final int _maxReadSize = 800000; // TODO, compute from MessageSizeMax or remove
- private int _period;
- private int _initialLines;
private int _maxLines;
private int _maxSize;
- private int _maxReadLines;
+ private int _initialLines;
+ private int _maxReadSize;
+ private int _period;
private Action _play;
private Action _pause;
private Action _stop;
+ private JRadioButtonMenuItem _playItem;
+ private JRadioButtonMenuItem _pauseItem;
+ private JRadioButtonMenuItem _stopItem;
+
+ private JToggleButton _playButton;
+ private JToggleButton _pauseButton;
+ private JToggleButton _stopButton;
+
private FIFOTextArea _textArea = new FIFOTextArea(20, 45);
private ReaderThread _thread;
}
diff --git a/java/src/IceGridGUI/LiveDeployment/ShowLogPrefsDialog.java b/java/src/IceGridGUI/LiveDeployment/ShowLogPrefsDialog.java
new file mode 100644
index 00000000000..0851c6c45df
--- /dev/null
+++ b/java/src/IceGridGUI/LiveDeployment/ShowLogPrefsDialog.java
@@ -0,0 +1,162 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+package IceGridGUI.LiveDeployment;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.factories.Borders;
+import com.jgoodies.forms.factories.ButtonBarFactory;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.util.LayoutStyle;
+
+import IceGrid.*;
+import IceGridGUI.*;
+
+class ShowLogPrefsDialog extends JDialog
+{
+ ShowLogPrefsDialog(final ShowLogDialog sld)
+ {
+ super(sld, "Preferences - IceGrid Admin", true);
+ setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+
+ final JTextField maxLinesField = new JTextField(10);
+ maxLinesField.setText(Integer.toString(sld.getMaxLines()));
+ maxLinesField.setToolTipText("Maximum number of lines in this dialog's buffer");
+
+ final JTextField maxSizeField = new JTextField(10);
+ maxSizeField.setText(Integer.toString(sld.getMaxSize()));
+ maxSizeField.setToolTipText("Maximum number of bytes in this dialog's buffer");
+
+ final JTextField initialLinesField = new JTextField(10);
+ initialLinesField.setText(Integer.toString(sld.getInitialLines()));
+ initialLinesField.setToolTipText("Start by retrieving <num> lines from the server; -1 means retrieve all");
+
+ final JTextField maxReadSizeField = new JTextField(10);
+ maxReadSizeField.setText(Integer.toString(sld.getMaxReadSize()));
+ maxReadSizeField.setToolTipText("Maximum number of bytes read by each request");
+
+ final JTextField periodField = new JTextField(10);
+ periodField.setText(Float.toString((float)sld.getPeriod() / 1000));
+ periodField.setToolTipText("After reaching EOF, check every <num> seconds for new output");
+
+ JButton okButton = new JButton("OK");
+ ActionListener okListener = new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ try
+ {
+ int maxLines = parseInt(maxLinesField, "Max lines in buffer");
+ int maxSize = parseInt(maxSizeField, "Max bytes in buffer");
+ int initialLines = parseInt(initialLinesField, "Initial tail (lines)");
+ int maxReadSize = parseInt(maxReadSizeField, "Max bytes read per request");
+ int period = (int)(parseFloat(periodField, "Poll period (seconds)") * 1000);
+
+ sld.setPrefs(maxLines, maxSize, initialLines, maxReadSize, period);
+ dispose();
+ }
+ catch(NumberFormatException ex)
+ {
+ return;
+ }
+ }
+ };
+ okButton.addActionListener(okListener);
+ getRootPane().setDefaultButton(okButton);
+
+ JButton cancelButton = new JButton("Cancel");
+ ActionListener cancelListener = new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ dispose();
+ }
+ };
+ cancelButton.addActionListener(cancelListener);
+
+
+ FormLayout layout = new FormLayout("left:pref, 3dlu, fill:pref:grow", "");
+ DefaultFormBuilder builder = new DefaultFormBuilder(layout);
+ builder.setDefaultDialogBorder();
+ builder.setRowGroupingEnabled(true);
+ builder.setLineGapSize(LayoutStyle.getCurrent().getLinePad());
+
+ builder.append("Max lines in buffer", maxLinesField);
+ builder.nextLine();
+ builder.append("Max bytes in buffer", maxSizeField);
+ builder.nextLine();
+ builder.append("Initial tail (lines)", initialLinesField);
+ builder.nextLine();
+ builder.append("Max bytes read per request", maxReadSizeField);
+ builder.nextLine();
+ builder.append("Poll period (seconds)", periodField);
+ builder.nextLine();
+
+ JComponent buttonBar =
+ ButtonBarFactory.buildOKCancelBar(okButton, cancelButton);
+ buttonBar.setBorder(Borders.DIALOG_BORDER);
+
+ java.awt.Container contentPane = getContentPane();
+ contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
+ contentPane.add(builder.getPanel());
+ contentPane.add(buttonBar);
+
+ pack();
+ setResizable(false);
+ setLocationRelativeTo(sld);
+ setVisible(true);
+ }
+
+
+ private int parseInt(JTextField field, String label) throws NumberFormatException
+ {
+ try
+ {
+ return Integer.parseInt(field.getText());
+ }
+ catch(NumberFormatException e)
+ {
+ JOptionPane.showMessageDialog(
+ this,
+ label + " must be an integer",
+ "Invalid entry",
+ JOptionPane.ERROR_MESSAGE);
+
+ throw e;
+ }
+ }
+
+ private float parseFloat(JTextField field, String label) throws NumberFormatException
+ {
+ try
+ {
+ return Float.parseFloat(field.getText());
+ }
+ catch(NumberFormatException e)
+ {
+ JOptionPane.showMessageDialog(
+ this,
+ label + " must be a decimal number",
+ "Invalid entry",
+ JOptionPane.ERROR_MESSAGE);
+
+ throw e;
+ }
+ }
+}