You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by me...@locus.apache.org on 2000/11/25 05:33:05 UTC
cvs commit: jakarta-ant/src/antidote/org/apache/tools/ant/gui ActionManager.java Console.java Main.java
metasim 00/11/24 20:33:05
Modified: src/antidote ChangeLog TODO
src/antidote/org/apache/tools/ant/gui ActionManager.java
Console.java Main.java
Log:
Added simplistic, non-editable version of context fontification in Console.
Revision Changes Path
1.11 +4 -0 jakarta-ant/src/antidote/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/ChangeLog,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ChangeLog 2000/11/21 01:06:14 1.10
+++ ChangeLog 2000/11/25 04:33:02 1.11
@@ -1,3 +1,7 @@
+2000-11-24 Simeon H.K. Fitch <si...@fitch.net>
+
+ * org/apache/tools/ant/gui/Console.java: Added context colorization.
+
2000-11-20 Simeon H.K. Fitch <si...@fitch.net>
* org/apache/tools/ant/gui/command/DisplayErrorCmd.java: Added
1.6 +3 -0 jakarta-ant/src/antidote/TODO
Index: TODO
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/TODO,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TODO 2000/11/24 17:09:10 1.5
+++ TODO 2000/11/25 04:33:02 1.6
@@ -1,4 +1,7 @@
TODO List:
+ * Add a Progress Monitor for file loading (especially for slow boxen like
+ mine) .
+
* Implement some for of refid hyperlinking functionality.
* Provide some sort of class path debugging support.
1.7 +9 -3 jakarta-ant/src/antidote/org/apache/tools/ant/gui/ActionManager.java
Index: ActionManager.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/ActionManager.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ActionManager.java 2000/11/24 17:09:12 1.6
+++ ActionManager.java 2000/11/25 04:33:03 1.7
@@ -104,15 +104,19 @@
import org.apache.tools.ant.gui.command.Command;
import javax.swing.*;
import java.util.*;
+import java.lang.reflect.Constructor;
/**
* Manager of antidote actions. Receives its configuration from the action
* ResourceBundle.
*
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
* @author Simeon Fitch
*/
public class ActionManager {
+ /** Parameters for the Command constructor. */
+ private static final Class[] COMMAND_CTOR_PARAMS = { AppContext.class };
+
private ResourceBundle _resources =
ResourceBundle.getBundle(
"org.apache.tools.ant.gui.resources.action");
@@ -271,8 +275,10 @@
Class clazz = action.getCommandClass();
if(clazz != null) {
try {
- retval = (Command) clazz.newInstance();
- retval.setContext(context);
+ Constructor ctor =
+ clazz.getConstructor(COMMAND_CTOR_PARAMS);
+ retval = (Command) ctor.newInstance(
+ new Object[] { context });
}
catch(Exception ex) {
// XXX log me.
1.8 +106 -20 jakarta-ant/src/antidote/org/apache/tools/ant/gui/Console.java
Index: Console.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/Console.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Console.java 2000/11/15 21:25:33 1.7
+++ Console.java 2000/11/25 04:33:04 1.8
@@ -55,16 +55,17 @@
import org.apache.tools.ant.gui.event.*;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
-import javax.swing.text.Document;
+import javax.swing.text.*;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Dimension;
+import java.awt.Color;
import java.util.EventObject;
/**
* Logging console display.
*
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
* @author Simeon Fitch
*/
public class Console extends AntEditor {
@@ -72,7 +73,9 @@
private JTextPane _text = null;
/** Selection of logging levels. */
private JComboBox _logLevel = null;
-
+ /** Display styles. */
+ private ConsoleStyleContext _styles = null;
+
/**
* Standard ctor.
*
@@ -83,7 +86,8 @@
context.getEventBus().addMember(EventBus.MONITORING, new Handler());
setLayout(new BorderLayout());
- _text = new NoWrapTextPane();
+ _styles = new ConsoleStyleContext();
+ _text = new JTextPane(_styles.getStyledDocument());
_text.setEditable(false);
JScrollPane scroller = new JScrollPane(_text);
scroller.setVerticalScrollBarPolicy(
@@ -124,7 +128,6 @@
Document doc = _text.getDocument();
try {
doc.remove(0, doc.getLength());
-
}
catch(Exception ex) {
// Intentionally ignored.
@@ -145,6 +148,7 @@
}
AntBuildEvent buildEvent = (AntBuildEvent) event;
+ Style style = null;
String text = null;
switch(buildEvent.getType().getValue()) {
@@ -152,9 +156,11 @@
clearDisplay();
case BuildEventType.BUILD_FINISHED_VAL:
text = buildEvent.getType().toString();
+ style = _styles.getHeadingStyle();
break;
case BuildEventType.TARGET_STARTED_VAL:
text = buildEvent.getEvent().getTarget().getName() + ":";
+ style = _styles.getSubheadingStyle();
break;
case BuildEventType.TARGET_FINISHED_VAL:
case BuildEventType.TASK_STARTED_VAL:
@@ -165,17 +171,18 @@
// selected filterint level.
LogLevelEnum level =
(LogLevelEnum) _logLevel.getSelectedItem();
- if(buildEvent.getEvent().getPriority() <= level.getValue()) {
+ int priority = buildEvent.getEvent().getPriority();
+ if(priority <= level.getValue()) {
text = buildEvent.toString();
+ style = _styles.getStyle(LogLevelEnum.fromInt(priority));
}
break;
}
-
if(text != null) {
try {
Document doc = _text.getDocument();
- doc.insertString(doc.getLength(), text, null);
+ doc.insertString(doc.getLength(), text, style);
doc.insertString(doc.getLength(), "\n", null);
}
catch(Exception ex) {
@@ -200,20 +207,99 @@
event instanceof NewProjectEvent;
}
}
+
+ /** Style set for pretty display of the console messages. */
+ private static class ConsoleStyleContext extends StyleContext {
+ /** Name of the style used for headings. */
+ public static final String HEADING_STYLE = "headingStyle";
+ /** Name of the style used for subheadings. */
+ public static final String SUBHEADING_STYLE = "subheadingStyle";
+
+ /** XXX temporary list of style colors. To go away once a real set of
+ * properties is implemented... */
+ private static final Color[] _colors = {
+ Color.red,
+ Color.magenta,
+ Color.black,
+ Color.darkGray,
+ Color.blue
+ };
+
+ /**
+ * Default ctor.
+ *
+ */
+ public ConsoleStyleContext() {
+ Style defaultStyle = getStyle(DEFAULT_STYLE);
+ StyleConstants.setFontSize(defaultStyle, 12);
+
+ Style msgBase = addStyle("msgBase", defaultStyle);
+ StyleConstants.setFontFamily(msgBase, "Monospaced");
+
+ LogLevelEnum[] levels = LogLevelEnum.getValues();
+ for(int i = 0; i < levels.length; i++) {
+ Style curr = addStyle(levels[i].toString(), msgBase);
+ StyleConstants.setFontSize(curr, 10);
+ StyleConstants.setForeground(curr, _colors[i]);
+ }
+
+ Style heading = addStyle(HEADING_STYLE, defaultStyle);
+ StyleConstants.setFontFamily(heading, "SansSerif");
+ StyleConstants.setBold(heading, true);
+ StyleConstants.setUnderline(heading, true);
+
+ Style subheading = addStyle(SUBHEADING_STYLE, heading);
+ StyleConstants.setFontSize(subheading, 10);
+ StyleConstants.setUnderline(subheading, false);
+ }
+
+ /**
+ * Get the style to use for the given logging level.
+ *
+ * @param level Logging level.
+ * @return Style to use for display.
+ */
+ Style getStyle(LogLevelEnum level) {
+ Style retval = getStyle(level.toString());
+ return retval == null ? getDefaultStyle() : retval;
+ }
+
+ /**
+ * Get the default style.
+ *
+ * @return Default style.
+ */
+ Style getDefaultStyle() {
+ return getStyle(DEFAULT_STYLE);
+ }
+
+ /**
+ * Get the style to use for headings.
+ *
+ * @return Heading style.
+ */
+ Style getHeadingStyle() {
+ return getStyle(HEADING_STYLE);
+ }
+
+ /**
+ * Get the style to use for subheadings.
+ *
+ * @return Subheading style.
+ */
+ Style getSubheadingStyle() {
+ return getStyle(SUBHEADING_STYLE);
+ }
- /** Specialization of JTextPane to provide proper wrapping behavior. */
- private static class NoWrapTextPane extends JTextPane {
/**
- * Overridden to ensure that the JTextPane is only
- * forced to match the viewport if it is smaller than
- * the viewport.
- *
- * @return True if smaller than viewport, false otherwise.
- */
- public boolean getScrollableTracksViewportWidth() {
- ComponentUI ui = getUI();
- return getParent() != null ? ui.getPreferredSize(this).width <=
- getParent().getSize().width : true;
+ * Get a StyledDocument initialized with this.
+ *
+ * @return SytledDocument.
+ */
+ StyledDocument getStyledDocument() {
+ DefaultStyledDocument retval = new DefaultStyledDocument(this);
+ retval.setLogicalStyle(0, getDefaultStyle());
+ return retval;
}
}
1.7 +2 -3 jakarta-ant/src/antidote/org/apache/tools/ant/gui/Main.java
Index: Main.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/Main.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Main.java 2000/11/24 17:09:13 1.6
+++ Main.java 2000/11/25 04:33:04 1.7
@@ -60,7 +60,7 @@
/**
* Launch point for the Antidote GUI. Configurs it as an application.
*
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
* @author Simeon Fitch
*/
public class Main {
@@ -99,9 +99,8 @@
// XXX this will change once full command line argument parsing
// is supported.
if(args.length > 0) {
- LoadFileCmd load = new LoadFileCmd();
+ LoadFileCmd load = new LoadFileCmd(context);
load.setFile(new File(args[0]));
- load.setContext(context);
load.run();
}
}