psmith 2003/06/18 19:37:32
Modified: src/java/org/apache/log4j/chainsaw LogUI.java
ReceiverTreeCellRenderer.java
ReceiversTreeModel.java
Log:
If there are no Receivers defined in the PluginRegistry
then the Receivers panel is automatically shown on startup (Nice to highlight
this fact). The Receivers panel now shows a default node with "No Receivers defined".
Also, on startup, if no Receivers are defined, a warning dialog is shown
telling you what this means, and pointing you to the Log4j configuration
file.
This dialog will be eventually replaced with a custom dialog that will
allow you dynamically create Receivers with the GUI.
Revision Changes Path
1.108 +22 -1
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/LogUI.java
Index: LogUI.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/LogUI.java,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -r1.107 -r1.108
--- LogUI.java 18 Jun 2003 22:23:20 -0000 1.107
+++ LogUI.java 19 Jun 2003 02:37:32 -0000 1.108
@@ -62,6 +62,7 @@
import org.apache.log4j.net.SocketNodeEventListener;
import org.apache.log4j.net.SocketReceiver;
import org.apache.log4j.plugins.PluginRegistry;
+import org.apache.log4j.plugins.Receiver;
import java.awt.BorderLayout;
import java.awt.Component;
@@ -195,6 +196,7 @@
private static final String STATUS_BAR = "StatusBar";
private static final String COLUMNS_EXTENSION = ".columns";
private static ChainsawSplash splash;
+ private boolean noReceiversDefined;
private JPanel receiversPanel;
ChainsawTabbedPane tabbedPane;
private JToolBar toolbar;
@@ -341,6 +343,12 @@
* layout, table columns, and sets itself viewable.
*/
public void activateViewer() {
+ if (
+ PluginRegistry.getPlugins(
+ LogManager.getLoggerRepository(), Receiver.class).size() == 0) {
+ noReceiversDefined = true;
+ }
+
/**
* Get all the SocketReceivers and configure a new SocketNodeEventListener
* so we can get notified of new Sockets
@@ -507,6 +515,19 @@
isGUIFullyInitialized = true;
initializationLock.notifyAll();
}
+
+ if (noReceiversDefined) {
+ SwingUtilities.invokeLater(
+ new Runnable() {
+ public void run() {
+ toggleReceiversPanel();
+ JOptionPane.showMessageDialog(
+ LogUI.this,
+ "You have no Receivers defined.\n\nYou will not be able to receive
events from a Remote source unless you define one in the Log4J configuration file.",
+ "No Receivers Defined", JOptionPane.WARNING_MESSAGE);
+ }
+ });
+ }
}
/**
@@ -2081,10 +2102,10 @@
}
class TableColumnData implements Serializable {
+ static final long serialVersionUID = 5350440293110513986L;
private String colName;
private int index;
private int width;
- static final long serialVersionUID = 5350440293110513986L;
public TableColumnData(String colName, int index, int width) {
this.colName = colName;
1.3 +12 -0
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiverTreeCellRenderer.java
Index: ReceiverTreeCellRenderer.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiverTreeCellRenderer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ReceiverTreeCellRenderer.java 18 Jun 2003 19:10:22 -0000 1.2
+++ ReceiverTreeCellRenderer.java 19 Jun 2003 02:37:32 -0000 1.3
@@ -116,6 +116,16 @@
chain.add(
new Formatter() {
public String formatDetail(Object o) {
+ if( o == ReceiversTreeModel.NoReceiversNode.getUserObject()) {
+ return o.toString();
+ }
+ return null;
+ }
+ });
+
+ chain.add(
+ new Formatter() {
+ public String formatDetail(Object o) {
return "(Unknown Type) :: " + o;
}
});
@@ -145,6 +155,8 @@
} else {
setIcon(inactiveReceiverIcon);
}
+ }else if (obj == ReceiversTreeModel.NoReceiversNode.getUserObject()){
+ setIcon(null);
}
return this;
1.2 +18 -12
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversTreeModel.java
Index: ReceiversTreeModel.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversTreeModel.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ReceiversTreeModel.java 17 Jun 2003 23:26:48 -0000 1.1
+++ ReceiversTreeModel.java 19 Jun 2003 02:37:32 -0000 1.2
@@ -71,6 +71,7 @@
private ReceiversTreeModel() {
super(new DefaultMutableTreeNode("Receivers"));
}
+ static final DefaultMutableTreeNode NoReceiversNode = new
DefaultMutableTreeNode("You have no Receivers defined");
/**
* Creates a new ReceiversTreeModel by querying the Log4j Plugin Repository
@@ -85,21 +86,26 @@
PluginRegistry.getPlugins(
LogManager.getLoggerRepository(), Receiver.class);
- for (Iterator iter = receivers.iterator(); iter.hasNext();) {
- Receiver item = (Receiver) iter.next();
- DefaultMutableTreeNode receiverNode = new DefaultMutableTreeNode(item);
+ if( receivers.size() == 0){
+
+ model.getRootNode().add(NoReceiversNode);
+ }else {
+ for (Iterator iter = receivers.iterator(); iter.hasNext();) {
+ Receiver item = (Receiver) iter.next();
+ DefaultMutableTreeNode receiverNode = new DefaultMutableTreeNode(item);
- if (item instanceof SocketReceiver) {
- for (
- Iterator iterator =
- ((SocketReceiver) item).getConnectedSocketDetails().iterator();
- iterator.hasNext();) {
- Object details = (Object) iterator.next();
- receiverNode.add(new DefaultMutableTreeNode(details));
+ if (item instanceof SocketReceiver) {
+ for (
+ Iterator iterator =
+ ((SocketReceiver) item).getConnectedSocketDetails().iterator();
+ iterator.hasNext();) {
+ Object details = (Object) iterator.next();
+ receiverNode.add(new DefaultMutableTreeNode(details));
+ }
}
- }
- model.getRootNode().add(receiverNode);
+ model.getRootNode().add(receiverNode);
+ }
}
return model;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]