From 0fbdf21385ab8b7abf9de6f613ddbeff1f3ba62f Mon Sep 17 00:00:00 2001
From: metasim
Date: Tue, 17 Apr 2001 00:27:12 +0000
Subject: [PATCH] Antidote officially moved to the CVS module
jakarta-ant-antidote.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268948 13f79535-47bb-0310-9956-ffa450edef68
---
src/antidote/ChangeLog | 153 -----
src/antidote/README | 68 --
src/antidote/TODO | 69 --
src/antidote/bin/antidote | 48 --
src/antidote/bin/antidote.bat | 48 --
src/antidote/build.xml | 214 ------
src/antidote/docs/design-overview.html | 253 --------
src/antidote/docs/gui-ideas.txt | 335 ----------
src/antidote/docs/gui-requirements.html | 250 -------
src/antidote/docs/new-module-howto.html | 89 ---
src/antidote/docs/uml/index.html | 44 --
.../docs/uml/org-apache-tools-ant-gui-acs.gif | Bin 41605 -> 0 bytes
.../uml/org-apache-tools-ant-gui-command.gif | Bin 21976 -> 0 bytes
.../uml/org-apache-tools-ant-gui-core.gif | Bin 53951 -> 0 bytes
.../org-apache-tools-ant-gui-customizer.gif | Bin 26730 -> 0 bytes
.../uml/org-apache-tools-ant-gui-event.gif | Bin 54620 -> 0 bytes
.../docs/uml/org-apache-tools-ant-gui-ide.gif | Bin 4657 -> 0 bytes
...g-apache-tools-ant-gui-modules-console.gif | Bin 15333 -> 0 bytes
.../org-apache-tools-ant-gui-modules-edit.gif | Bin 6208 -> 0 bytes
.../uml/org-apache-tools-ant-gui-modules.gif | Bin 3655 -> 0 bytes
.../uml/org-apache-tools-ant-gui-util.gif | Bin 8307 -> 0 bytes
.../docs/uml/org-apache-tools-ant-gui.gif | Bin 20672 -> 0 bytes
src/antidote/etc/manifest | 4 -
.../org/apache/tools/ant/gui/About.java | 142 ----
.../org/apache/tools/ant/gui/Antidote.java | 147 -----
.../org/apache/tools/ant/gui/Args.java | 161 -----
.../org/apache/tools/ant/gui/Main.java | 155 -----
.../tools/ant/gui/acs/ACSBeanDescriptor.java | 73 ---
.../tools/ant/gui/acs/ACSDefaultElement.java | 73 ---
.../tools/ant/gui/acs/ACSDocumentType.java | 504 ---------------
.../ant/gui/acs/ACSDtdDefinedAttributes.java | 103 ---
.../ant/gui/acs/ACSDtdDefinedElement.java | 329 ----------
.../gui/acs/ACSDtdDefinedElementBeanInfo.java | 139 ----
.../apache/tools/ant/gui/acs/ACSElement.java | 153 -----
.../apache/tools/ant/gui/acs/ACSFactory.java | 299 ---------
.../tools/ant/gui/acs/ACSInfoProvider.java | 75 ---
.../tools/ant/gui/acs/ACSNamedElement.java | 127 ----
.../tools/ant/gui/acs/ACSProjectElement.java | 167 -----
.../gui/acs/ACSProjectElementBeanInfo.java | 136 ----
.../tools/ant/gui/acs/ACSPropertyElement.java | 154 -----
.../gui/acs/ACSPropertyElementBeanInfo.java | 132 ----
.../tools/ant/gui/acs/ACSTargetElement.java | 182 ------
.../ant/gui/acs/ACSTargetElementBeanInfo.java | 153 -----
.../tools/ant/gui/acs/ACSTaskElement.java | 153 -----
.../ant/gui/acs/ACSTaskElementBeanInfo.java | 134 ----
.../tools/ant/gui/acs/ACSTreeNodeElement.java | 71 --
.../tools/ant/gui/acs/BaseBeanInfo.java | 159 -----
.../tools/ant/gui/acs/ElementTreeModel.java | 312 ---------
.../gui/acs/ElementTreeSelectionModel.java | 103 ---
.../tools/ant/gui/acs/acs-element.properties | 14 -
.../org/apache/tools/ant/gui/acs/package.html | 9 -
.../apache/tools/ant/gui/acs/project-ext.dtd | 255 --------
.../org/apache/tools/ant/gui/acs/project.dtd | 424 ------------
.../org/apache/tools/ant/gui/acs/share.dtd | 118 ----
.../tools/ant/gui/command/AboutCmd.java | 84 ---
.../ant/gui/command/AbstractCommand.java | 91 ---
.../tools/ant/gui/command/BuildCmd.java | 128 ----
.../ant/gui/command/ChangeLookAndFeelCmd.java | 81 ---
.../tools/ant/gui/command/CloseCmd.java | 111 ----
.../apache/tools/ant/gui/command/Command.java | 72 ---
.../ant/gui/command/DeleteElementCmd.java | 106 ---
.../ant/gui/command/DisplayErrorCmd.java | 164 -----
.../tools/ant/gui/command/EmacsNotifyCmd.java | 91 ---
.../apache/tools/ant/gui/command/ExitCmd.java | 86 ---
.../tools/ant/gui/command/LoadFileCmd.java | 119 ----
.../tools/ant/gui/command/NewElementCmd.java | 159 -----
.../tools/ant/gui/command/NewElementDlg.java | 429 ------------
.../tools/ant/gui/command/NewProjectCmd.java | 92 ---
.../tools/ant/gui/command/NewPropertyCmd.java | 93 ---
.../tools/ant/gui/command/NewTargetCmd.java | 94 ---
.../tools/ant/gui/command/NewTaskCmd.java | 94 ---
.../apache/tools/ant/gui/command/NoOpCmd.java | 78 ---
.../apache/tools/ant/gui/command/OpenCmd.java | 98 ---
.../tools/ant/gui/command/SaveAsCmd.java | 181 ------
.../apache/tools/ant/gui/command/SaveCmd.java | 79 ---
.../ant/gui/command/ShowOrHideConsoleCmd.java | 147 -----
.../tools/ant/gui/core/ActionManager.java | 424 ------------
.../apache/tools/ant/gui/core/AntAction.java | 369 -----------
.../apache/tools/ant/gui/core/AntModule.java | 122 ----
.../apache/tools/ant/gui/core/AppContext.java | 164 -----
.../ant/gui/core/BuildEventForwarder.java | 158 -----
.../tools/ant/gui/core/EventDebugMonitor.java | 106 ---
.../tools/ant/gui/core/EventResponder.java | 178 -----
.../ant/gui/core/EventToActionMapper.java | 177 -----
.../tools/ant/gui/core/ProjectManager.java | 384 -----------
.../ant/gui/core/ProjectSelectionMenu.java | 177 -----
.../tools/ant/gui/core/ResourceManager.java | 322 ----------
.../tools/ant/gui/core/SelectionManager.java | 147 -----
.../tools/ant/gui/core/XMLFileFilter.java | 102 ---
.../apache/tools/ant/gui/customizer/.wrapper | 28 -
.../customizer/AbstractPropertyEditor.java | 246 -------
.../gui/customizer/DoublePropertyEditor.java | 170 -----
.../ant/gui/customizer/DynamicCustomizer.java | 608 ------------------
.../gui/customizer/FilePropertyEditor.java | 215 -------
.../gui/customizer/IntegerPropertyEditor.java | 172 -----
.../gui/customizer/ObjectPropertyEditor.java | 313 ---------
.../customizer/PropertiesPropertyEditor.java | 308 ---------
.../customizer/StringArrayPropertyEditor.java | 179 ------
.../gui/customizer/StringPropertyEditor.java | 165 -----
.../tools/ant/gui/event/AntBuildEvent.java | 129 ----
.../apache/tools/ant/gui/event/AntEvent.java | 99 ---
.../tools/ant/gui/event/BuildEventType.java | 208 ------
.../ant/gui/event/BuildFinishedEvent.java | 91 ---
.../ant/gui/event/BuildStartedEvent.java | 91 ---
.../apache/tools/ant/gui/event/BusFilter.java | 73 ---
.../apache/tools/ant/gui/event/BusMember.java | 82 ---
.../ant/gui/event/ConsoleNotVisibleEvent.java | 73 ---
.../ant/gui/event/ConsoleVisibleEvent.java | 73 ---
.../ant/gui/event/DeleteElementEvent.java | 88 ---
.../DtdDefinedElementSelectionEvent.java | 83 ---
.../ant/gui/event/ElementSelectionEvent.java | 164 -----
.../tools/ant/gui/event/ErrorEvent.java | 134 ----
.../apache/tools/ant/gui/event/EventBus.java | 197 ------
.../ant/gui/event/NewBaseElementEvent.java | 91 ---
.../tools/ant/gui/event/NewElementEvent.java | 70 --
.../tools/ant/gui/event/NewProjectEvent.java | 95 ---
.../tools/ant/gui/event/NewPropertyEvent.java | 91 ---
.../tools/ant/gui/event/NewTargetEvent.java | 90 ---
.../tools/ant/gui/event/NewTaskEvent.java | 90 ---
.../ant/gui/event/NullSelectionEvent.java | 74 ---
.../tools/ant/gui/event/OpenRequestEvent.java | 94 ---
.../ant/gui/event/ProjectClosedEvent.java | 74 ---
.../ant/gui/event/ProjectSelectedEvent.java | 89 ---
.../ant/gui/event/PropertySelectionEvent.java | 85 ---
.../ant/gui/event/RefreshDisplayEvent.java | 74 ---
.../tools/ant/gui/event/ShowConsoleEvent.java | 84 ---
.../ant/gui/event/TargetSelectionEvent.java | 85 ---
.../ant/gui/event/TaskSelectionEvent.java | 85 ---
.../tools/ant/gui/ide/EmacsNotifier.java | 106 ---
.../tools/ant/gui/ide/FileErrorNotifier.java | 146 -----
.../tools/ant/gui/modules/TargetMonitor.java | 185 ------
.../ant/gui/modules/console/BuildConsole.java | 356 ----------
.../ant/gui/modules/console/LogLevelEnum.java | 163 -----
.../modules/edit/DependentTargetChooser.java | 376 -----------
.../edit/DependentTargetPropertyEditor.java | 327 ----------
.../tools/ant/gui/modules/edit/DragTree.java | 606 -----------------
.../gui/modules/edit/DragTreeListener.java | 96 ---
.../edit/DtdAttributePropertyEditor.java | 389 -----------
.../gui/modules/edit/ElementNavigator.java | 333 ----------
.../modules/edit/ElementTreeCellRenderer.java | 101 ---
.../ant/gui/modules/edit/PropertyEditor.java | 197 ------
.../gui/modules/edit/TargetsTableModel.java | 189 ------
.../tools/ant/gui/resources/action.properties | 185 ------
.../ant/gui/resources/antidote.properties | 141 ----
.../tools/ant/gui/resources/args.properties | 7 -
.../gui/resources/buildFileWizard.properties | 88 ---
.../tools/ant/gui/resources/console.gif | Bin 977 -> 0 bytes
.../tools/ant/gui/resources/default.gif | Bin 987 -> 0 bytes
.../apache/tools/ant/gui/resources/down.gif | Bin 936 -> 0 bytes
.../apache/tools/ant/gui/resources/enter.gif | Bin 944 -> 0 bytes
.../apache/tools/ant/gui/resources/exit.gif | Bin 956 -> 0 bytes
.../tools/ant/gui/resources/icon-small.gif | Bin 1403 -> 0 bytes
.../tools/ant/gui/resources/new-project.gif | Bin 286 -> 0 bytes
.../tools/ant/gui/resources/new-property.gif | Bin 458 -> 0 bytes
.../tools/ant/gui/resources/new-target.gif | Bin 313 -> 0 bytes
.../tools/ant/gui/resources/new-task.gif | Bin 429 -> 0 bytes
.../apache/tools/ant/gui/resources/new.gif | Bin 997 -> 0 bytes
.../apache/tools/ant/gui/resources/open.gif | Bin 1001 -> 0 bytes
.../tools/ant/gui/resources/project.gif | Bin 914 -> 0 bytes
.../tools/ant/gui/resources/property.gif | Bin 998 -> 0 bytes
.../apache/tools/ant/gui/resources/save.gif | Bin 981 -> 0 bytes
.../apache/tools/ant/gui/resources/start.gif | Bin 988 -> 0 bytes
.../apache/tools/ant/gui/resources/stop.gif | Bin 989 -> 0 bytes
.../apache/tools/ant/gui/resources/target.gif | Bin 187 -> 0 bytes
.../apache/tools/ant/gui/resources/task.gif | Bin 988 -> 0 bytes
.../tools/ant/gui/resources/unknown.gif | Bin 1043 -> 0 bytes
.../org/apache/tools/ant/gui/resources/up.gif | Bin 936 -> 0 bytes
.../tools/ant/gui/util/ChangeLookAndFeel.java | 160 -----
.../ant/gui/util/CheckableButtonModel.java | 144 -----
.../tools/ant/gui/util/Collections.java | 83 ---
.../tools/ant/gui/util/LabelFieldGBC.java | 144 -----
.../apache/tools/ant/gui/util/StackFrame.java | 208 ------
.../tools/ant/gui/util/WindowUtils.java | 108 ----
.../apache/tools/ant/gui/util/XMLHelper.java | 74 ---
.../org/apache/tools/ant/gui/version.txt | 2 -
.../ant/gui/wizard/AbstractWizardStep.java | 230 -------
.../tools/ant/gui/wizard/ButtonNavigator.java | 197 ------
.../ant/gui/wizard/DefaultStateMachine.java | 108 ----
.../tools/ant/gui/wizard/InstructionStep.java | 102 ---
.../ant/gui/wizard/NavigatorListener.java | 89 ---
.../tools/ant/gui/wizard/StateMachine.java | 82 ---
.../apache/tools/ant/gui/wizard/Wizard.java | 261 --------
.../tools/ant/gui/wizard/WizardData.java | 89 ---
.../tools/ant/gui/wizard/WizardListener.java | 77 ---
.../tools/ant/gui/wizard/WizardNavigator.java | 95 ---
.../tools/ant/gui/wizard/WizardStep.java | 165 -----
.../tools/ant/gui/wizard/build/BuildData.java | 189 ------
.../gui/wizard/build/BuildStateMachine.java | 141 ----
.../tools/ant/gui/wizard/build/Builder.java | 92 ---
.../ant/gui/wizard/build/CompileStep.java | 119 ----
.../ant/gui/wizard/build/FinishStep.java | 110 ----
.../tools/ant/gui/wizard/build/JARStep.java | 116 ----
.../ant/gui/wizard/build/JavaDocStep.java | 116 ----
.../ant/gui/wizard/build/OptionalStep.java | 65 --
.../gui/wizard/build/ProjectSetupStep.java | 201 ------
.../ant/gui/wizard/build/ProjectTypeStep.java | 115 ----
196 files changed, 25171 deletions(-)
delete mode 100644 src/antidote/ChangeLog
delete mode 100644 src/antidote/README
delete mode 100644 src/antidote/TODO
delete mode 100755 src/antidote/bin/antidote
delete mode 100644 src/antidote/bin/antidote.bat
delete mode 100644 src/antidote/build.xml
delete mode 100644 src/antidote/docs/design-overview.html
delete mode 100644 src/antidote/docs/gui-ideas.txt
delete mode 100644 src/antidote/docs/gui-requirements.html
delete mode 100644 src/antidote/docs/new-module-howto.html
delete mode 100644 src/antidote/docs/uml/index.html
delete mode 100644 src/antidote/docs/uml/org-apache-tools-ant-gui-acs.gif
delete mode 100644 src/antidote/docs/uml/org-apache-tools-ant-gui-command.gif
delete mode 100755 src/antidote/docs/uml/org-apache-tools-ant-gui-core.gif
delete mode 100644 src/antidote/docs/uml/org-apache-tools-ant-gui-customizer.gif
delete mode 100644 src/antidote/docs/uml/org-apache-tools-ant-gui-event.gif
delete mode 100644 src/antidote/docs/uml/org-apache-tools-ant-gui-ide.gif
delete mode 100755 src/antidote/docs/uml/org-apache-tools-ant-gui-modules-console.gif
delete mode 100755 src/antidote/docs/uml/org-apache-tools-ant-gui-modules-edit.gif
delete mode 100755 src/antidote/docs/uml/org-apache-tools-ant-gui-modules.gif
delete mode 100644 src/antidote/docs/uml/org-apache-tools-ant-gui-util.gif
delete mode 100644 src/antidote/docs/uml/org-apache-tools-ant-gui.gif
delete mode 100644 src/antidote/etc/manifest
delete mode 100644 src/antidote/org/apache/tools/ant/gui/About.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/Antidote.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/Args.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/Main.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSBeanDescriptor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSDefaultElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSDocumentType.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSDtdDefinedAttributes.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSDtdDefinedElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSDtdDefinedElementBeanInfo.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSFactory.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSInfoProvider.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSNamedElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSProjectElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSProjectElementBeanInfo.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSPropertyElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSPropertyElementBeanInfo.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSTargetElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSTargetElementBeanInfo.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSTaskElementBeanInfo.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ACSTreeNodeElement.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/BaseBeanInfo.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ElementTreeModel.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/ElementTreeSelectionModel.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/acs-element.properties
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/package.html
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/project-ext.dtd
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/project.dtd
delete mode 100644 src/antidote/org/apache/tools/ant/gui/acs/share.dtd
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/AboutCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/AbstractCommand.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/BuildCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/ChangeLookAndFeelCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/CloseCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/Command.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/DeleteElementCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/DisplayErrorCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/EmacsNotifyCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/ExitCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/LoadFileCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/NewElementCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/NewElementDlg.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/NewProjectCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/NewPropertyCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/NewTargetCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/NewTaskCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/NoOpCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/OpenCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/SaveAsCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/SaveCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/command/ShowOrHideConsoleCmd.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/ActionManager.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/AntAction.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/AntModule.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/AppContext.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/BuildEventForwarder.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/EventDebugMonitor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/EventResponder.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/EventToActionMapper.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/ProjectManager.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/ProjectSelectionMenu.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/ResourceManager.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/SelectionManager.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/core/XMLFileFilter.java
delete mode 100755 src/antidote/org/apache/tools/ant/gui/customizer/.wrapper
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/AbstractPropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/DoublePropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/DynamicCustomizer.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/FilePropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/IntegerPropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/ObjectPropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/PropertiesPropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/StringArrayPropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/customizer/StringPropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/AntBuildEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/AntEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/BuildEventType.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/BuildFinishedEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/BuildStartedEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/BusFilter.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/BusMember.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/ConsoleNotVisibleEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/ConsoleVisibleEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/DeleteElementEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/DtdDefinedElementSelectionEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/ElementSelectionEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/ErrorEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/EventBus.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/NewBaseElementEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/NewElementEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/NewProjectEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/NewPropertyEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/NewTargetEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/NewTaskEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/NullSelectionEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/OpenRequestEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/ProjectClosedEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/ProjectSelectedEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/PropertySelectionEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/RefreshDisplayEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/ShowConsoleEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/TargetSelectionEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/event/TaskSelectionEvent.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/ide/EmacsNotifier.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/ide/FileErrorNotifier.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/TargetMonitor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/console/BuildConsole.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/console/LogLevelEnum.java
delete mode 100755 src/antidote/org/apache/tools/ant/gui/modules/edit/DependentTargetChooser.java
delete mode 100755 src/antidote/org/apache/tools/ant/gui/modules/edit/DependentTargetPropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/edit/DragTree.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/edit/DragTreeListener.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/edit/DtdAttributePropertyEditor.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/edit/ElementNavigator.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/edit/ElementTreeCellRenderer.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/modules/edit/PropertyEditor.java
delete mode 100755 src/antidote/org/apache/tools/ant/gui/modules/edit/TargetsTableModel.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/action.properties
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/antidote.properties
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/args.properties
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/buildFileWizard.properties
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/console.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/default.gif
delete mode 100755 src/antidote/org/apache/tools/ant/gui/resources/down.gif
delete mode 100755 src/antidote/org/apache/tools/ant/gui/resources/enter.gif
delete mode 100755 src/antidote/org/apache/tools/ant/gui/resources/exit.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/icon-small.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/new-project.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/new-property.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/new-target.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/new-task.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/new.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/open.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/project.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/property.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/save.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/start.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/stop.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/target.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/task.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/resources/unknown.gif
delete mode 100755 src/antidote/org/apache/tools/ant/gui/resources/up.gif
delete mode 100644 src/antidote/org/apache/tools/ant/gui/util/ChangeLookAndFeel.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/util/CheckableButtonModel.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/util/Collections.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/util/LabelFieldGBC.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/util/StackFrame.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/util/WindowUtils.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/util/XMLHelper.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/version.txt
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/AbstractWizardStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/ButtonNavigator.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/DefaultStateMachine.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/InstructionStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/NavigatorListener.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/StateMachine.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/Wizard.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/WizardData.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/WizardListener.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/WizardNavigator.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/WizardStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/BuildData.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/BuildStateMachine.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/Builder.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/CompileStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/FinishStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/JARStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/JavaDocStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/OptionalStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/ProjectSetupStep.java
delete mode 100644 src/antidote/org/apache/tools/ant/gui/wizard/build/ProjectTypeStep.java
diff --git a/src/antidote/ChangeLog b/src/antidote/ChangeLog
deleted file mode 100644
index b9bf0261c..000000000
--- a/src/antidote/ChangeLog
+++ /dev/null
@@ -1,153 +0,0 @@
-2000-11-27 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/ActionManager.java: Added ability to
- generate popup menus from a list of action IDs.
-
-2000-11-24 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/Console.java: Added context colorization.
-
-2000-11-20 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/command/DisplayErrorCmd.java: Added
- code to allow display of stack backtrace if needed.
-
-2000-11-18 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/customizer/PropertiesPropertyEditor.java:
- Added proper editing capability. Rows are added and removed
- automatically.
-
- * org/apache/tools/ant/gui/customizer/XXXPropertyEditor.java:
- Removed stray event firing upon setting value of property to edit.
-
-2000-11-16 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/customizer/StringPropertyEditor.java:
- Changed underlying widget type to JTextPane so that it would
- accomidate multi-line strings property.
-
- * org/apache/tools/ant/gui/acs/ACSTreeNodeElement.java: Fixed
- nasty java.lang.IllegalAccessException bug that I thought was
- related to Java 1.3 Blackdown RC1, but wasn't. It was related to
- using Jikes, which interprests method resolution differently than
- javac, resulting in a call trying to access a private method
- implementation of a public interface.
-
- * org/apache/tools/ant/gui/ResourceManager.java: Added convenience
- method for getting resource images for a given class.
-
- * org/apache/tools/ant/gui/AntAction.java: Added toggle property.
-
- * org/apache/tools/ant/gui/ActionManager.java: Added ability to
- handle toggle actions to menu bar (still need to add support to
- tool bar).
-
- * org/apache/tools/ant/gui/EventResponder.java: Added emacs
- notifier command.
-
- * org/apache/tools/ant/gui/ide/EmacsNotifier.java: Imported.
-
- * org/apache/tools/ant/gui/ProjectProxy.java: Added code to add
- listeners registered with the AppContext to the build.
-
- * org/apache/tools/ant/gui/AppContext.java: Now allows registering
- of build listeners to be added to project at build time.
-
- * org/apache/tools/ant/gui/Main.java: Added loading of build file
- provided on command line.
-
-2000-11-14 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/Antidote.java: Added top area widget,
- which is *not* managed inside a split pane.
-
- * org/apache/tools/ant/gui/ProjectNavigator.java: Added minimum
- size to keep resizing of parent from hiding widget.
-
- * org/apache/tools/ant/gui/ActionManager.java: Large functionality
- addtion for allowing action enabled/disabled state to be defined
- in the configuration file. The triggering of state changes is
- based on the firing of specific events.
-
- * org/apache/tools/ant/gui/AntAction.java: Broke out from inner
- class of ActionManager to its own self (I'm my own man!).
-
- * org/apache/tools/ant/gui/command/CloseCmd.java: Added firing of
- ProjectClosedEvent so state updates could occur.
-
- * org/apache/tools/ant/gui/resources/action.properties: Added
- enabledOn and disabledOn event specifications.
-
- * org/apache/tools/ant/gui/Console.java: Improved reporting level
- handling (some events weren't getting reported).
-
-2000-11-10 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/PropertyEditor.java: Added new
- DynamicCustomizer class instead of HTML based info.
-
-2000-11-09 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/ProjectProxy.java: Started rework of
- project data model, using elements from the XML parser directly
- through the new Ant Construction Set package.
-
-2000-11-08 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/About.java: Useless tweaking inspired
- by procrastination.
-
-2000-11-05 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/LogLevelEnum.java: Added log level
- enumeration for use with combo boxes (drops nicely into default model).
-
- * org/apache/tools/ant/gui/event/BuildEventType.java: Added
- delivering of event to a BuildListener based on enumeration value.
-
- * org/apache/tools/ant/gui/ProjectProxy.java: Added generation of
- BuildEvent on project start and finish, as the project itself
- doesn't generate theses events (unfortunately).
-
- * org/apache/tools/ant/gui/Console.java: Added filtering level,
- and clearing of buffer when a new build starts.
-
- * org/apache/tools/ant/gui/AntEditor.java: Added automatic border
- for all subclasses.
-
-2000-11-04 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/ProjectProxy.java: Added inner class to
- execute the build in a separate thread.
-
- * org/apache/tools/ant/gui/event/EventBus.java: Added check to see
- if postEvent() is being called on the AWTEvent thread, and if not,
- post the dispatching of the event to that thread. This is needed
- as most of the listeners will be bound to GUI components and will
- be updating their state (which must occur on the event thread).
-
- * org/apache/tools/ant/gui/ProjectProxy.java: Added a
- BuildListener to forward events to the EventBus.
-
-2000-11-03 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/Antidote.java: Removed hard-coded
- Console class.
-
- * org/apache/tools/ant/gui/Console.java: Changed to a real
- AntEditor class, initialized by the config file.
-
-2000-11-02 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/event/EventBus.java: Added interrupt
- level support.
-
- * org/apache/tools/ant/gui/About.java: Created
-
-2000-11-01 Simeon H.K. Fitch
-
- * org/apache/tools/ant/gui/Main.java: Added XMLHelper.init() call
-
- * build.xml: Updated run target to include ant.jar in classpath.
-
diff --git a/src/antidote/README b/src/antidote/README
deleted file mode 100644
index a7597365a..000000000
--- a/src/antidote/README
+++ /dev/null
@@ -1,68 +0,0 @@
-
- A N T I D O T E
-
- What is it?
- -----------
-
- Antidote is the Java based GUI interface to the Ant build tool.
-
- Status
- ------
-
- Antidote is in the early stages of development. Its usefulnes is limited, and
- will not be distributed with the binary versions of Ant until it is deemed
- featureful and robust enough for end user use. That being said, it currently
- will load an Ant build.xml file, allow you to edit some of the file's
- properties, save it, and launch a build starting at any target in the
- project.
-
- The Latest Version
- ------------------
-
- The latest version is the current CVS version, which may or may not be useful
- at any given time. The source code is not being base-lined at any specific
- version at this time.
-
- Documentation
- -------------
-
- Any documentation that exists for Antidote can be found in the antidote/docs
- directory. Documentation is primarily developement based documentation as
- Antidote is not yet mature enough for reliable user documentation.
-
- Building
- --------
-
- Antidote requres JAXP 1.0.1 from Sun (http://java.sun.com/xml). Some time in
- the future it is hoped at any w3c based XML will be usable, but at the
- current time the Sun library is needed. The easiest way to install the
- jaxp.jar and parsers.jar file that comes with the distribution is to copy
- them into your $JAVA_HOME/jre/lib/ext directory.
-
- There is a build.xml file in the same directory as this file that will work
- with Ant 1.2. It is recommended that Ant be built first (from ../..),
- followed by this directory. By default, the compiled classes will be written
- to ~/built/antidote/classes, but the JAR file and launch scripts are written
- to the Ant build directory (~/build/ant).
-
- Running
- -------
-
- Antidote requires at least Java 1.2 to run.
-
- Upon successful building of Ant and Antidote (in that order), go to
- ~/build/ant/bin and run "antidote". You will probably have to set the
- environment variable "ANT_HOME" to "~/build/ant" in the shell that you launch
- antidote from. If desired, you can provide the build file to launch at statup
- as the first argument on the command line to "antidote".
-
- Licensing
- ---------
-
- This software is licensed under the terms you may find in the file
- named "LICENSE" provided with this distribution.
-
- Thanks for using Antidote.
-
- The Apache Jakarta Project
-
diff --git a/src/antidote/TODO b/src/antidote/TODO
deleted file mode 100644
index 5c5f88758..000000000
--- a/src/antidote/TODO
+++ /dev/null
@@ -1,69 +0,0 @@
-TODO List:
- * Rewrite ACSFactory to use it's own parser rather than the implementation
- specific com.sun.xml.tree.SimpleElementFactory class (only available
- in JAXP from Sun).
-
- * Add editors for defining file sets, and other "sets".
-
- * Write wizzard framework.
-
- * Implement a build progress reporter.
-
- * Implement a "Worker Thread" pattern that allows workers to have
- their work done in a thread property registered with Antidote, and
- provide support to that worker to provide progress updates via
- the GUI. Should also provide support for hour-glass cursor
- handling, and AWT event blocking until task is completed. This
- would be used for things such as loading files or other tasks
- that the user must wait for completion.
-
- * Add menu option to select the compiler to use, which then sets
- the "build.compiler" property. Better yet, create a generic menu
- building capability that allows the setting of a property from a
- list of options.
-
- * Add ability to put an "all" or "don't care" specifyer on the action
- "enableOn" and "disableOn" properties.
-
- * Add ability to view task dependencies more fully.
-
- * Add better editors for specific tasks.
-
- * Add a Progress Monitor for file loading (especially for slow boxen like
- mine) .
-
- * Implement some for of refid hyperlinking functionality.
-
- * Implement context sensitive menus for the console window, allowing
- an error to be selected and invoked in IDE.
-
- * Write preferences framwork, including persistence support.
-
- * Provide some sort of class path debugging support.
-
- * Add "syntax" colorization to the console window {done},
- with a preferences editor for setting up the styles {not-done}.
-
- * Figure out an approach to gracefully stopping a running build.
-
- * Add error handler for SAX parser to better report loading errors.
-
- * Project properties viewer, including the ability to view
- dependencies (local and cascading).
-
- * Acquire or implement a logging facility.
-
- * Eat more dog food.
-
-(pending Ant 2.0)
-
- * Need Ant API access to:
- - Tasks within a Target
- - The topo sorted task list to get flattened dependencies
- - The build setup code to recduce code replication.
- - Normalize the Ant data model to represent a more consistent
- tree structure, and more bean-like API.
-
- * Better define the data model architecture, and how it interfaces
- with the Ant data model.
-
diff --git a/src/antidote/bin/antidote b/src/antidote/bin/antidote
deleted file mode 100755
index 22e167a80..000000000
--- a/src/antidote/bin/antidote
+++ /dev/null
@@ -1,48 +0,0 @@
-#! /bin/sh
-
-if [ -f $HOME/.antrc ] ; then
- . $HOME/.antrc
-fi
-
-if [ "$ANT_HOME" = "" ] ; then
- # try to find ANT
- if [ -d /opt/ant ] ; then
- ANT_HOME=/opt/ant
- fi
-
- if [ -d ${HOME}/opt/ant ] ; then
- ANT_HOME=${HOME}/opt/ant
- fi
-
- ## resolve links - $0 may be a link to ant's home
- PRG=$0
- progname=`basename $0`
-
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '.*/.*' > /dev/null; then
- PRG="$link"
- else
- PRG="`dirname $PRG`/$link"
- fi
- done
-
- ANT_HOME=`dirname "$PRG"`/..
-
-fi
-
-# Allow .antrc to specifiy flags to java cmd
-if [ "$JAVACMD" = "" ] ; then
- JAVACMD=java
-fi
-
-LOCALCLASSPATH=`echo $ANT_HOME/lib/*.jar | tr ' ' ':'`
-
-if [ "$CLASSPATH" != "" ] ; then
- LOCALCLASSPATH=$CLASSPATH:$LOCALCLASSPATH
-fi
-
-
-$JAVACMD -classpath $LOCALCLASSPATH -Dant.home=${ANT_HOME} org.apache.tools.ant.gui.Main $@
-
diff --git a/src/antidote/bin/antidote.bat b/src/antidote/bin/antidote.bat
deleted file mode 100644
index f7f74c9ef..000000000
--- a/src/antidote/bin/antidote.bat
+++ /dev/null
@@ -1,48 +0,0 @@
-@echo off
-
-rem Slurp the command line arguments. This loop allows for an unlimited number of
-rem agruments (up to the command line limit, anyway).
-
-set ANT_CMD_LINE_ARGS=
-
-:setupArgs
-if %1a==a goto doneArgs
-set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
-shift
-goto setupArgs
-
-:doneArgs
-rem The doneArgs label is here just to provide a place for the argument list loop
-rem to break out to.
-
-rem find ANT_HOME
-if not "%ANT_HOME%"=="" goto checkJava
-
-rem check for ant in Program Files on system drive
-rem if not exist "%SystemDrive%\Program Files\ant" goto checkSystemDrive
-rem set ANT_HOME=%SystemDrive%\Program Files\ant
-rem goto checkJava
-
-rem :checkSystemDrive
-rem check for ant in root directory of system drive
-rem if not exist "%SystemDrive%\ant" goto noAntHome
-rem set ANT_HOME=%SystemDrive%\ant
-rem goto checkJava
-
-:noAntHome
-echo ANT_HOME is not set and ant could not be located. Please set ANT_HOME.
-goto end
-
-:checkJava
-if "%JAVACMD%" == "" set JAVACMD=java
-
-set LOCALCLASSPATH="%CLASSPATH%"
-for %%i in ("%ANT_HOME%\lib\*.jar") do call "%ANT_HOME%\bin\lcp.bat" "%%i"
-
-%JAVACMD% -classpath %LOCALCLASSPATH% -Dant.home="%ANT_HOME%" org.apache.tools.ant.gui.Main %ANT_CMD_LINE_ARGS%
-goto end
-
-:end
-set LOCALCLASSPATH=
-set ANT_CMD_LINE_ARGS=
-
diff --git a/src/antidote/build.xml b/src/antidote/build.xml
deleted file mode 100644
index 52e0671ad..000000000
--- a/src/antidote/build.xml
+++ /dev/null
@@ -1,214 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/antidote/docs/design-overview.html b/src/antidote/docs/design-overview.html
deleted file mode 100644
index 4436afcde..000000000
--- a/src/antidote/docs/design-overview.html
+++ /dev/null
@@ -1,253 +0,0 @@
-
-
-
- Antidote Design Overview
-
-
-
-
- Antidote Design Overview
-
- Version 0.2 (2000/12/18)
-
- Authors:
- Simeon H.K. Fitch
-
-
- Introduction
-
- The purpose of this document is to communicate the overall
- structure and design patters used in Antidote, the GUI for
- Ant. This document is a work in progress, as well as a living
- document, and it is most likely not be in full synchronization with
- the source code. Therefore, if there is any doubt, view the source
- ;-)
-
- Overview
-
- The Antidote architecture design aims to provide a high level
- of modularity and extensibility. Ideally the components of
- Antidote will be able to be assembled in different configurations
- to provide the type of application or plug-in desired.
-
- To acheive this modularity, a high level of decoupling is
- necessary. The standard UI design approach of providing separation
- of view (presentation) from model (data) is applied, leveraging
- the built-in Ant data model where possible, as well as the
- predifined Swing model interfaces. Furthermore, the architecture
- is highly event driven, whereby modules communicate via a shared
- communications channel.
-
- To a large extent, the configuration of application modules is
- driven by localized configuration files, allowing new modules or
- data views to be added, as well as providing multi-language
- support.
-
- The diagram below conveys a high altitude view of the
- application's structure. As the application grows, new components
- will be plugged in to what will be described as the EventBus.
-
-
-
-Antidote Component Architecture
-
- +---------------+ +----------------+ +-------------+ +-------------+
- | | | | | | | |
- | ActionManager | | EventResponder | | AntModule | | AntModule |
- | | | | |(ProjectNav) | |(SourceEdit) |
- +---------------+ +----------------+ +-------------+ +-------------+
- | ^ ^ ^
- | | | |
- ActionEvent EventObject AntEvent AntEvent
- | | | |
- v v v v
- /---------------------------------------------------------------------\
- / \
-< EventBus >
- \ /
- \---------------------------------------------------------------------/
- | ^ ^ ^
- | | | |
- EventObject ChangeEvent BuildEvent EventObject
- | | | |
- v | | v
- +---------------+ +----------------+ +-------------+ +--------------+
- | | | | | | | |
- | Console | | ProjectProxy | | Ant | | (Your Module)|
- | | | | | | | |
- +---------------+ +----------------+ +-------------+ +--------------+
-
-
-
-
Event Bus
-
- The backbone of the application is the EventBus. Any
- component of the application can post events to the
- EventBus. Components that wish to receive events are
- called BusMembers.
-
- The EventBus will dispatch any object of type
- java.util.Event, which means that Ant BuildEvent
- objects, as well as AWTEvent objects can be posted (if desired). A
- new class of events called AntEvent is defined for Antidote
- specific events, which have the additional capability of being
- cancelled mid-dispatch.
-
- Each BusMember must provide a BusFilter instance,
- which is the members' means of telling the bus which
- events it is interested in. This allows a BusMember to,
- say, only receive AntEvent objects.
-
- When a BusMember registers itself with the
- EventBus, it must provide a (so called) interrupt
- level which is a integer value defining a relative ordering
- for dispatching EventObjects to BusMembers. The
- purpose of this is to allow certain BusMember instances
- to see an event before others, and in the case of AntEventEventBus class defines the interrupt level constants
- VETOING=1, MONITORING=5, and RESPONDING=10 to
- help define categories of members. The implied purpose being that:
-
-
- - VETOING: Listens for certain types of events, and
- may process them in a non-default manner to determine if the
- event should be cancelled before being dispatched to the
- RESPONDING group.
-
-
- MONITORING: Just listens for events, like a logger
- or status monitor.
-
- - RESPONDING: Process events in a default manner,
- knowing that the event has passed any VETOING members.
-
-
-
- Within a specific interrupt level, the order in which members will
- receive events is undefied. A BusMember may be registered
- at a level that is +/- of one of the defined levels, as long as it
- follows the constraint MONITORING <= interruptLevel <=
- MAX_INTERRUPT.
-
-
- Actions and ActionManager
-
- Extensive use of the javax.swing.Action interface is
- made for defining the set of menu and tool bar options that are
- available. The configuration file action.properties
- exists to define what should appear in the menu and toolbar, how
- it is displayed, and the Action command name that is
- dispatched when the user invokes that action. A class called
- ActionManager exists for not only processing the
- configuration file, but also for dispatching invoked action events
- to the EventBus, and for controlling the enabled state of
- an Action. When a new menu item or toolbar button is
- desired, first it is added to the action.properties file,
- and then the code to respond to it is added to the
- EventResponder (see below).
-
-
-
Commands and EventResponder
-
- At some point in the stages of event processing, an event may
- require the data model to be modified, or some other task be
- performed. The Command interface is defined to classify
- code which performs some task or operation. This is distinct from
- an Action, which is a user request for an operation. A
- Command class is the encapsulation of the operation
- itself.
-
- When an Action generates an ActionEvent, the
- event is posted to the EventBus which delivers the event
- to all interested BusMembers. It eventually makes it to
- the EventResponder instance (registered at the
- RESPONDING interrupt level), which is responsible for
- translating specific events into Command objects, and
- then executing the Command object. For example, when the
- user selects the "Open..." menu option, an ActionEvent is
- generated by the Swing MenuItem class, which is then
- posted to the EventBus by the ActionManager. The
- ActionEvent is delivered to the EventResponder,
- which converts the ActionEvent into a Command
- instance. The EventResponder then calls the method
- Command.execute() to invoke the command (which displays a
- dialog for selecting a file to open).
-
- When adding new Actions or general tasks to the
- application, a Command object should be created to
- encapsulate the behavior. This includes most operations which
- modify the state of the data model.
-
- The purpose of this encapsulation is to allow the clean
- separation of making a request, and servicing a request. Due to
- various conditions in the application state, the actualy response
- to a request may change, as well as who services it. This
- design approach facilitates that.
-
- Data Model and Views
-
- NB: This part of the architecture is not fleshed out very well. There
- needs to be a discussion of the degree to which the Antidote development
- should be able to impose changes on the Ant data model, and to what level
- that model should be mirrored in the Antidote code base. The coupling
- between them should be kept low, and at the same time changes to one should
- affect the other minimally. Still, features like property change events and
- bean introspection (or BeanInfo) may be needed to be added to the Ant data
- model. Right now the data model is encapsulated in the package
- org.apache.tools.ant.gui.acs (where "acs" stands for "Ant
- Construction Set").
-
- Application Context
-
- In order to keep the coupling amoung application modules to a
- minimum, a single point of reference is needed for coordination
- and data sharing. The class AppContext is the catch-all
- class for containing the application state. Most modules and
- Command classes require an instance of the
- AppContext class. Because all state information in
- contained in an AppContext instance, multiple instances
- of Antidote can run inside the same JVM as long as each has it's
- own AppContext. (Interestingly, two instances of the
- Antidote could conceivably share an AppContext instance
- through RMI, allowing remote interaction/collaboration.)
-
- Configuration and ResourceManager
-
- Full "i18n" support should be assumed in modern applications,
- and all user viewable strings should be defined in a configuration
- file. For Antidote this configuraiton file is
- antidote.properties, which is located (with other UI
- resources) in the subpackage "resources".
-
- To aid in the lookup of text properties, as well as other
- resources like icons, a class called ResourceManager is
- defined. There are various convenience methods attached to this
- class, which will likely grow to make looking up configuration
- values as easy as possible.
-
- The organization of configuration properties is based on the
- fully qualifed path of the class that requires the property. For
- example, the "about" box contains a messages, so it looks for the
- property "org.apache.tools.ant.gui.About.message" for the text
- message it should display. Therefore, the ResourceManager
- method getString() takes a Class instance as
- well as a String key. Please see the
- ResourceManager documentation for more information. Given
- this support, no user visible strings should appear in the source
- code itself.
-
- Other Resources
-
- Other information about development on Antidote:
-
-
-
- Copyright © 2000 Apache Software Foundation. All
- rights Reserved.
-
-
-
diff --git a/src/antidote/docs/gui-ideas.txt b/src/antidote/docs/gui-ideas.txt
deleted file mode 100644
index 7d1900594..000000000
--- a/src/antidote/docs/gui-ideas.txt
+++ /dev/null
@@ -1,335 +0,0 @@
-(NOTE: the following text is a vision for an Ant GUI by Stefan Vaillant
- called Anttool. It is included here in the
-Antidote docs section as it provides a better vision for what the GUI should be
-than the current requirements document, and should be considered an integral
-part of the long-term plans for Antidote. Simeon Fitch)
-
-
------------------------------------------------------------------------
-
-********************
-**Anttool Proposal**
-********************
-
-By: Stefan Vaillant
-
------------------------------------------------------------------------
-
-Anttool Overview:
------------------
-
-With Anttool a user can manage the build process for existing ant build files.
-By using the grafical user interface, the user can adjust certain properties to
-his environment, start and cancel builds, monitor their progress and call
-appropiate programs to fix problems. It is not possible to modify the build
-file. Instead, an external XML editor or antidote should be used.
-
-
-For inexperienced users, the tool provides an easy and efficient way to install
-open source software: load software to the local system, build it and install
-it. The tool can be used without any knowledge of XML or the ant DTD. Instead,
-the user just adjusts the relevant properties to his environment and starts the
-build.
-
-For programmers, the tool supports the basic build/test/edit cycle. Given an
-existing ant build file, the programmer can use the grafical user interface to
-execute individual targets, browse the effects of the build and start editors to
-fix problems that occured during the build.
-
-
-I general, anttool is ment for users who see the build file as a black-box: They
-are not primarily interested in the internal structure of the build file nor in
-modifiying it. Instead, they want to call ant with the appropiate arguments and
-want to see, what is the result of the build.
-
-Therefore, anttool only shows targets and properties that are relevant for these
-users. Tasks are not shown at all.
-
-
-Anttool User Interface:
------------------------
-
-The user interface of anttool is devided into two panels: The "Control Panel"
-shows all loaded build files and their targets. The "Project Panel" shows
-details for one project, including the logging information from the last
-build(s), the editable properties of an build and relevant files of that build.
-
-By default, the user interface does not show targets or properties that have no
-description or a descriuption starting with a ".". These targets or properties
-are called "hidden" in the following text.
-
-
-The Control Panel:
-------------------
-
-The Control Panel shows a tree with all loaded projects. For each project the
-non-hidden targets are shown. (Anttool can be configured to show also hidden
-targets, see Configuration below).
-
-If you move the cursor over a project or target, a description for it will be
-shown as a tooltip.
-
-Two icons are prefixing the name of the project or target: one is visualizing
-the state of the project or target, the other is a button to start or cancel the
-project or target. The state icon can have the following different colors:
- - green if the execution was successfull.
- - yellow if an execution is needed because the output files are
- out-of-date [not possible with current ant version?]
- - red if the execution resulted in errors.
- - white (i.e. nothing) if the state is unknown
-[Alternative: what about buttons labeled with the target name?
- The button is used for start/stopping the build.
- No tree required then. ]
-
-
-If you select a node in the tree, the Project Panel (see below) will show
-details for the relevant project.
-
-If you right-click on a node in the tree, a pop-up menu will show the following
-commands:
- edit: open XML editor at selected element
- open: in new window [? is that needed]
-
-
-The Project Panel:
-------------------
-
-The Project Panel consists of three tabs:
-
-The "Build Log" tab shows information about the last build(s), the "Properties"
-tab shows non-hidden properties and the "Files" tab shows files relevant for the
-project.
-
-The Build Log Tab:
-
-In this tab you can monitor the build on detail. A tree shows the executed
-targets of a build, their tasks and log messages for each task. The start time
-is noted after the build name.
-
-In the pop-up menu, you can choose from the following commands:
- edit: open editor for shown file at shown location.
- show log level->Error/Warning/Info/Verbose/Debug
- (only the items possible are shown,
- see configuration.)
-
-The Properties Tab:
-
-The properties tab shows all non-hidden properties of the project. (optionally,
-also hidden properties can be shown, see Configuratin below.)
-
-Each Property is shown as follows:
- :
-where
- is name of the property, with "." and "-" replaced by " "
- and first letters capatilized.
- is a text field to enter a value for the properts.
- In some cases, special benas are shown:
- Name ends with ".dir" => provide a file chooser to select a directory
- Name ends with ".lib" => provide a file chooser to select .jar file
- Name is "build.compiler" => provide combo box with possible compilers.
- [selecting JDK's seems not well support in ant?
- If you have e.g. JDK 1.2.1 and 1.2.2 installed,
- how to easily select the compiler version?]
- Name ends with ".jdk" => let the user select one of the configures
-JDK's
- [more general then build.compiler, but supported by ant?]
- Name ends with ".file" => provide a file chooser
- resets the value to the (default) value that is
-contained in the .xml file
-
-All values entered are save in a file
-$HOME/.ant/.property. (See also Configuration.)
-
-If property values are changed, then ant is called with
-main("-Dproperty1=value1 ..").
-
-[show also (class)pathes as property, use id instead of name? But: is that
- required? Why not simply define individual properties for the required
- libraries and combine them then to a path. ]
-
-
-
-The File Set Tab:
-
-This tab show files that are releated to the project. For each non-hidden
-fileset of the project, the id of the fileset is shown and all files included to
-that fileset.
-
-If you right-click on a file, a pop-up menu is shown with which you can start
-programs to deal with these files. The relevant configuration information is
-extracted from the existing operation system settings.
-
-[or: one tab for each fileset?]
-
-Repository:
------------
-
-[This needs some more work.]
-
-Anttool also simplyfies the loading of source files form the web. By using the
-repository mechanism of anttool, you can perform the complete workflow from
-download to install with just a few mouse clicks:
-
- select one out of the Repositories from the main menu.
- Anttool will query the server for a list of up-to-date
- packages.
-
- select one of the presented packages
- Anttool will then download the selected package:
- In case a .zip (or similar) package was selected,
- the file is downloaded and
- unpacked to "/Users/".
- In case a CVS repository was selected,
- the files are downloaded to "/Users/".
-
- Afterwards
- a file with the name "build.xml" is searched
- and loaded to anttool.
- Optionally, the file "$HOME/.ant/default.properties"
- is copied to "$HOME/.ant/.properties,
- overwriting the defaults in the downloaded build file
- with your preferences (e.g. installation directory, JDK, ...)
- [copy only relevant properties?]
-
- check if the properties in the selected project match your intention.
-
- press "start" on the project
-
-
-Anttool Configuration:
------------------------
-
-The menu "Tools" in the menu bar allows you to adjust Anttool behavior to your
-preferences and environment.
-
-The following menu entries are available:
-
-Configure JDKs:
- Can be used to configure the JDKs available
- on your system. The configured values are offered
- for properties that end with ".jdk".
-
- The screen offers a table to edit a set of names
- and pathes.
- By pressing "rescan" the system is scanned for new JDKs
- by consulting the installed software.
-
- [Should there be one combo box
- Anttool JDK:
- that indicates the JDK that should be used to run ant?
- Should that be even project specific setting?
- ]
-
-Configure Repository: [better name?]
- Anttool is aware of certain places where Anttool supporting software
- can be found on the internet.
- These URLs can be configured here.
- These repositories are offered to the user when he selects
- the "Repository" menu in the menu bar.
-
- The screen offers a table to edit a set of names
- and URLs.
-
-Configure Libraries:
- Can be used to configure the libraries available
- on your system. The configured values are offered
- for properties that end with ".lib".
-
- The screen offers a table to edit a set of names
- and pathes.
- By pressing "rescan" the system is scanned for new libraries
- by searching below a directory.
-
-
-Preferences:
- show hidden targets: bool
- [or: offer addition menu to start hidden targets?]
- show hidden filesets: bool
- show hidden properties: bool
-
- log level used for build: ...
- number of log files saved:
- number of log files shown in UI:
-
- Directory to save property values:
-
- file name remembered in file menu:
-
- checkig for new files in filesets: [seconds]
- autoload new buildfile: [seconds, 0= never]
-
-
-General features:
------------------
-The menubar menu's are
- File
- Open...
- Close
- -------
- 1 buildfile.xml
- 2 ....
- 3 ...
- ------
- Exit
- Repository
- Apache... as configured
- ...
- ....
- Options
- Configure JDKs...
- Configure Repository...
- Configure Libraries...
- Preferences...
- Look&Feel...
- Help
- Antool Help...
- Ant Web Home calls netscape
- -----------
- About...
-
-
-Build files can be dragged and dropped into anttool.
-
-The set off loaded build files should be saved on exit and
-reloaded on restart automatically.
-
-
-
-Technical questions on the internals of anttool
------------------------------------------------
-- How to detect if a target needs to be run (yellow color)?
- Seems not be possible currently.
- One solution [what will ant 2.0 contain?]:
- Define new abstract class "MonitoredTask", inherited from Task.
- Copy, Javac, javadoc, etc inherit from these.
- MonitoredTask defines:
- execute() { prepareTask(); if (executionNeeded) { perform() }; }
- executionNeeded: boolean // signals that I need to run because output is
-older than input
- perform()
- performMap() // what will happen with each file, i.e.
- Main.java -> Main.class
- UI.java -> UI.class
- ...
- or
- Main.class -> lib.jar
- UI.class -> lib.jar
- size of Map should be equal to number of steps reported in loggin.
-
- Only "executionNeeded" is required to add a yellow flag for targets. The
- performMap would be nice to have. It could be used later to show a finegrained
- graph (or matrix) about what is happening during a build.
-
- Add configuration item on how often call the funtions (i.e. how often to do
- the polling.)
-
-- How to do the calling of the external tools?
- XML editor? (how to generate the dtd? How to execute "antstructure"
- withour changing the build file.)
- How to simulate the windows functionality for e.g. open java source with
- JBuilder?
- How to read the registry information?
- How to do DDE calls?
-
-- is there any free installation tool for java?
- (to install anttool itself)
diff --git a/src/antidote/docs/gui-requirements.html b/src/antidote/docs/gui-requirements.html
deleted file mode 100644
index 079684a66..000000000
--- a/src/antidote/docs/gui-requirements.html
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- Ant GUI Feature List
-
-
- Ant GUI Feature List
- Version 0.4 (2000/11/06)
- Authors:
- Simeon H.K. Fitch,
- Chris Todd,
- Clint Combs,
- Conor MacNeill,
- Matthew Kuperus Heun,
- James Duncan Davidson
-
-
-
The purpose of this document is to capture the proposed feature list for
- the Ant Graphical User Interface. This is not a hard requirements
- specification; you won't find the word "shall" in it (other than that one
- time). :-)
-
- In general, the purpose of the GUI is to allow the quick generation and
- modification of Ant build files, helping the user define their build process
- and track down build problems. For it to be successful it must make the user
- more efficient and productive, insofar as their involvement in build
- management and use of Ant goes. It should first address the needs of the
- novice Ant user, and then add abilities for the "power" user. This does not
- imply that the UI should be "dumbed down", it just means that usability
- should come before slick but complicated features.
-
- The features are in a loose order of expressed interested by
- contributors.
-
-
-
-
-
- Build Management
- Once a build file is created, the user will want to start and
- stop it from the UI. This will serve both as a testing facility as well as
- a general compile tool. Monitoring of the build can occur through the Ant
- BuildListener interface.
-
- - Build execution.
-
- - Initiate a build starting from any task.
- - Stop a currently active build.
-
- - Build monitoring.
-
- - Provide feedback on the current status of the build.
- This is where you can have more fun with the directed graph view,
- where the current build activity is highlighted on the screen, making
- the whole thing behave like a dynamic state transition diagram. You
- can then highlight the node where the build fails, etc.
- - Show log messages from the build, allowing the user to determine
- the task they originated from.
- - Provide the ability to filter logged messages, adn to display the
- messages in color codes corresponding to logging levels.
- - Allow the installation of custom log listeners
- - Record runtime statistics to determine bottleneck in the build
- process
- This may be of limited use, as calling <javac> probably takes
- the most time. But maybe not.
-
-
-
-
- Build Wizard (auto-configure)
- To make starting a new project with Ant as easy as possible, the a
- wizard type of UI can be used where the user provides some basic
- information and the application deduces what a default build.xml file for
- it should look like.
-
- - Project attributes.
-
- - Provide input for the required project attributes.
- This probably means project name and default target.
-
- - Project directories.
-
- - Ask for the source directory.
- - Ask for the destination directory.
- - Ask for the necessary JAR files.
-
- - Project properties.
-
- - Provide a default set of project properties.
- In here would be things like classpath, build.compiler, version,
- etc.
- - Allow the user to add to or remove from properties the default set
- of properties.
-
- - Task creation
-
- - Provide a list of "standard" tasks to insert into the project.
- This would be tasks like <javac> and
- <javadoc>.
- - Generate default init, compile, javadoc, and clean targets.
-
- - Creation review.
-
- - Provide a review of the contents of the generated build.xml
- file.
- - Allow the user to go back to any step in the process to change a
- setting.
- - Prompt the user to save the build.xml file.
-
-
-
-
-
- IDE Integration
- Components of the Ant GUI shoule support plugging into IDEs and code
- editors.
-
- - Emacs
-
- - Provide support for launching builds from emacs, and notification
- of errors.
-
- - JEdit
-
- - Provide JEdit plug-in.
-
- - ProjectBuilder
-
- - Provide integration with OSX ProjectBuilder.
-
- - NetBeans
-
- - Provide integration with the NetBeans IDE.
-
-
-
-
-
- Project Editing
- The Ant UI will be centered around the project file. All operations of
- the UI will be on a project, whether it be existing or new. How
- sub-projects are handled (i.e. via the <ant> task) needs to be
- determined.
-
- - Load a project.
-
- - Read the native Ant XML format as defined by the Ant users'
- manual.
- - When possible, automatically handle changes in the Ant element
- set, or at least changes to the task set, as well as the valid set of
- attributes.
- Possible approach: load "default.properties", use
- introspection to discover attribute set, then reference some other
- mechanism for attributes that are manifested as properties.
-
- - Report errors in the XML source.
- - Provide a list of recently opened documents for
- quick reloading.
-
- - View project contents.
-
- - View the project in it's XML source format.
- - View the project in a non-source format.
- This is left ambiguous to keep the implementation out of the
- requirements. The different presentation formats are likely to evolve
- over time.
-
- - View the project properties.
- - View the project contents (tasks).
-
- - Modify a project.
-
- - Edit via the XML source.
- - Edit properties via a property sheet.
- - Provide facility for editing XML references used in the build
- file.
-
- - Save a project.
-
- - Save to the native Ant XML format as defined by the Ant users'
- manual.
- - Default save name is "build.xml".
- - Verify before overwriting existing file when in "Save as"
- mode.
-
- - Create a new project.
-
- - Define a project name.
- - Define the default target.
- - Define the project base directory.
-
-
-
-
-
- Task Editing
- Tasks define what it is that Ant is to do, and will be the object most
- edited in the UI. Task is to Paragraph as
- Project is to Document.
-
- - View tasks.
-
- - View a sorted list of tasks.
- Provide sorting based on name, depth in dependency tree, how many
- tasks depend in it...
- - View tasks as a directed graph.
- Need a good graph editing library. Looked at GEF but it still needs a lot of
- work, to make it easily reusable. Long term status unknown.
- - View tasks as a dependency tree.
- - View task as a properties sheet.
- - Provide dependency viewing, both immediate and "flattened"
- views.
-
- - Modify task.
-
- - Allow editing of a task via a property sheet.
- - Allow editing of a task via XML source.
- - Allow the graphical editing of task dependencies
- This is where you can go hog wild with the component wiring type of
- UI.
- - Allow non-graphical editing of dependencies.
- - Provide detection of circular dependencies.
- - Facilitate definition of conditional tasks with evaluation
- editor.
-
-
-
-
- Build File Source Editing
- This section listes desired features for editing the Ant build file
- directly. Some components of this could be met by a generic XML editing
- capability, but other parts will be Ant specific features.
-
- - XML Editor.
-
- - Provide syntax higlighting.
- - Provide auto-indentation.
- - Provide smart tag completion.
- - Provide visual highlighting of syntax errors.
- - Support auto-reparsing of contents and model update.
-
-
-
-
- Copyright © 2000 Apache Software Foundation. All
- rights Reserved.
-
-
-
diff --git a/src/antidote/docs/new-module-howto.html b/src/antidote/docs/new-module-howto.html
deleted file mode 100644
index db0140847..000000000
--- a/src/antidote/docs/new-module-howto.html
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
- Antidote New Module HOWTO
-
-
-
-
- Antidote New Module HOWTO
-
- Version 0.1 (2000/12/18)
-
- Authors:
- Simeon H.K. Fitch
-
-
- Introduction
-
- The purpose of this document is to provide an overview of the
- basic steps one must undertake to add a new module to
- Antidote. Please see The Antidote
- Design Overview for information on what a module is and how it
- fits into Antidote. If you've already got all that, then read
- on!
-
- NB: Please submit updates and criticisms to this, particularly
- areas that were unclear, missing, or difficult to follow.
-
- 1) Specialize org.apache.tools.ant.gui.core.AntModule
-
- All modules must inherit from the AntModule
- class. This will probably irritate some of you, but it essentially
- enforces inheritance from javax.swing.JComponent and
- provides encapsulated handling of the AppContext instance
- that is so important to this class.
-
- Your module is required to implement the
- AntModule.contextualize(AppContext) method. The first
- thing this method should do is call
- AntModule.setContext(AppContext), and then it is safe for
- it to begin constructing its display, using whatever resources it
- needs from the given AppContext instance. Think of this
- in a similar manner to Applet.init() or
- Servlet.init().
-
-
2) Update
- org/apache/tools/ant/gui/resources/antidote.properties
-
- 2a) Externalize All Displayable Strings
-
- All displayable strings must be externalized to the
- antidote.properties file, and looked up via the
- AppContext.getResources() method after the
- AntModule.contextualize() method has been called. Follow
- the naming convention currently used in the properties file and
- you should have to problems. This task should be done
- during development of your module. Under no cercumstances
- should your module be submitted or committed without this task
- being completed. Remember that Antidote has an international
- audience.
-
- 2b) Add Module to List of Auto-Loaded Modules
-
- Look for the properties with the format
- org.apache.tools.ant.gui.Antidote.xxx.modules where
- xxx is one of {left | right | top | bottom}. Depending on
- where you want your module to appear, and the order that you want
- it to appear in relationship to the other modules, add the class
- name of your module appropriately. If multiple modules are listed
- for a single property (via a comma delimited list), then each
- module will have it's own tab in a javax.swing.JTabbedPane.
-
-
NB:This goofy way of constructing the main screen will probably
- change to something much more general (but not as general as, say
- BML).
-
- Run it!
- That should be all you need to do, at least to get your module
- plugged in. Check out the source code for
- ProjectNavigator and PropertyEditor for module
- examples that use the various facilities of the Antidote
- framework.
-
-
- Copyright © 2000 Apache Software Foundation. All
- rights Reserved.
-
-
-
diff --git a/src/antidote/docs/uml/index.html b/src/antidote/docs/uml/index.html
deleted file mode 100644
index 4f685e9de..000000000
--- a/src/antidote/docs/uml/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
- Antidote UML Static Class Diagrams
-
-
-
-
- Antidote UML Static Class Diagrams
-
- Version 0.1 (2000/12/19)
-
- Authors:
- Simeon H.K. Fitch
-
-
- Diagram Images
-
- The following UML static class diagrams were generated using Together/J, reverse engineering the
- existing code. They are no means guaranteed to be kept up to date, and are
- only a snapshot of development in progress. Their purpose is to help give
- people a quick glance a the class structure of the various packages that
- make up.
-
-
- - org.apache.tools.ant.gui
- - org.apache.tools.ant.gui.acs
- - org.apache.tools.ant.gui.core
- - org.apache.tools.ant.gui.command
- - org.apache.tools.ant.gui.customizer
- - org.apache.tools.ant.gui.event
- - org.apache.tools.ant.gui.ide
- - org.apache.tools.ant.gui.modules
- - org.apache.tools.ant.gui.modules.console
- - org.apache.tools.ant.gui.modules.edit
- - org.apache.tools.ant.gui.util
-
-
-
- Copyright © 2000 Apache Software Foundation. All
- rights Reserved.
-
-
diff --git a/src/antidote/docs/uml/org-apache-tools-ant-gui-acs.gif b/src/antidote/docs/uml/org-apache-tools-ant-gui-acs.gif
deleted file mode 100644
index 215b26dfb55a526a66d91f1b075925a35f6e1d9c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 41605
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