JAL-1807
[jalview.git] / buildSite.xml
diff --git a/buildSite.xml b/buildSite.xml
new file mode 100644 (file)
index 0000000..e5c75c2
--- /dev/null
@@ -0,0 +1,523 @@
+<project name="swingjs" default="createSite" basedir=".">
+                       
+<!-- buildSite.xml for building site/ -->
+       
+       
+  <target name="createSite" id="createSite">
+
+       <property name="project.path" value="." />
+
+       <!-- create a NON svn local directory only containing JS files  -->
+       
+    <echo>...adding JavaScript files from bin</echo>
+       <copy todir="site/j2s"  overwrite="true" >
+      <fileset dir="bin">
+        <include name="**/*.js" />
+        <exclude name="javajs/**/*.js" />
+      </fileset>
+    </copy>
+               
+
+       <echo>...adding to /j2s all src property and css files -- adjust as necessary</echo>
+       <copy todir="site/j2s"  overwrite="true" >
+      <fileset dir="src">
+        <include name="**/*.properties" />
+        <include name="**/*.css" />
+        <include name="**/*.png" />
+      </fileset>
+    </copy>
+       
+       <echo>...adding resource directory</echo>
+       <copy todir="site/j2s/jalview/resources"  overwrite="true" >
+      <fileset dir="resources">
+        <include name="**/*" />
+      </fileset>
+    </copy>
+       
+       <!-- modify class names -->             
+
+    <echo>removing j2s globals Class and JavaObject</echo>
+    <echo>...replacing Class.forName with Clazz._4Name</echo>
+       <replace dir="site/j2s" includes="**/*.js" token="Class.forName" value="Clazz._4Name"/>
+    <echo>...replacing JavaObject with Clazz._O</echo>
+       <replace dir="site/j2s" includes="**/*.js" token=" JavaObject" value=" Clazz._O"/>
+    <echo>...removing all $fz references for sub/superclass common private function names</echo>
+       <replace dir="site/j2s" includes="**/*.js" token="($fz =" value=""/>
+       <replace dir="site/j2s" includes="**/*.js" token=", $fz.isPrivate = true, $fz)" value=""/>
+       <echo>...changing Clazz.pu$h() to Clazz.pu$h(self.c$) (only a partial fix)</echo>
+       <replace dir="site/j2s" includes="**/*.js" token="Clazz.pu$h()" value="Clazz.pu$h(self.c$)"/>
+       <replace dir="site/j2s" includes="**/*.js" token="Clazz.pu$h ()" value="Clazz.pu$h(self.c$)"/>
+               
+
+    <echo>...abbreviating class name "javajs.util", and "com.jcraft.jzlib" to "JU"</echo>
+       <replace dir="site/j2s" includes="**/*.js" token="javajs.util" value="JU"/>
+       <replace dir="site/j2s" includes="**/*.js" token="com.jcraft.jzlib" value="JU"/>
+                               
+       
+       <!-- make core files -->
+       <echo>creating and compressing core files - warnings are OK; "does not exist" is trouble</echo>
+
+       <!-- note: any changes in these next sections must be reflected also
+                    in package.js -->
+<!--           
+    <property name="javaCoreFiles" value="
+       java/lang/AbstractStringBuilder.js
+       java/lang/Enum.js
+       ...
+       " />
+       
+       
+       
+-->    
+
+       <!-- 
+
+       <echo>creating minimal core.z.js</echo>
+       
+    <antcall target="call-core">
+        <param name="call-core.name" value="swingjs" />
+        <param name="call-core.list" value="
+                       ../js/JSmolJavaExt.js
+            java/awt/BasicStroke.js
+            java/awt/Stroke.js
+            java/util/Locale.js
+            java/util/ResourceBundle.js
+            JU/Rdr.js
+            javajs/api/GenericLineReader.js
+            java/io/BufferedInputStream.js
+            java/io/FilterInputStream.js
+            java/io/InputStream.js
+            java/io/BufferedReader.js
+            java/io/ByteArrayInputStream.js
+            java/io/Reader.js                  
+            java/io/StringReader.js
+            JU/Base64.js
+            JU/Encoding.js
+            java/util/MissingResourceException.js
+               
+
+            jssun/misc/MessageUtils.js
+            java/awt/Dimension.js
+            java/awt/geom/Dimension2D.js
+            java/awt/Panel.js
+            java/util/ArrayList.js
+            java/util/AbstractList.js
+            java/util/AbstractCollection.js
+            java/awt/ComponentOrientation.js
+            java/security/AccessController.js
+            java/security/AccessControlContext.js
+            java/util/HashMap.js
+            java/util/MapEntry.js
+            java/util/AbstractSet.js
+            java/util/AbstractMap.js
+            java/awt/image/ImageObserver.js
+            java/lang/Enum.js
+            java/applet/AppletStub.js
+            java/applet/AppletContext.js
+            javajs/api/JSInterface.js
+            java/lang/StringBuilder.js
+            java/lang/AbstractStringBuilder.js
+            java/util/Arrays.js
+            java/util/Locale.js
+            java/awt/event/ActionListener.js
+            java/awt/event/AdjustmentListener.js
+            java/awt/event/ComponentListener.js
+            java/awt/event/ContainerListener.js
+            java/awt/event/FocusListener.js
+            java/awt/event/HierarchyBoundsListener.js
+            java/awt/event/HierarchyListener.js
+            java/awt/event/InputMethodListener.js
+            java/awt/event/ItemListener.js
+            java/awt/event/KeyListener.js
+            java/awt/event/MouseListener.js
+            java/awt/event/MouseMotionListener.js
+            java/awt/event/MouseWheelListener.js
+            java/awt/event/TextListener.js
+            java/awt/event/WindowFocusListener.js
+            java/awt/event/WindowListener.js
+            java/awt/event/WindowStateListener.js
+            java/awt/Cursor.js
+            java/awt/AWTError.js
+            java/awt/Insets.js
+            java/awt/RenderingHints.js
+            java/util/Collections.js
+               java/util/SortedMap.js
+            java/util/SortedSet.js
+            java/util/Random.js
+            java/awt/event/AWTEventListenerProxy.js
+            java/beans/PropertyChangeSupport.js
+            java/beans/ChangeListenerMap.js
+            java/beans/IndexedPropertyChangeEvent.js
+            java/beans/PropertyChangeEvent.js
+            java/beans/PropertyChangeListenerProxy.js
+            java/beans/PropertyChangeListener.js
+            java/security/PrivilegedAction.js
+            java/awt/Point.js
+            jssun/awt/AppContext.js
+            java/lang/StringBuffer.js
+            java/util/IdentityHashMap.js
+            java/util/HashSet.js
+            jssun/awt/ComponentFactory.js
+            jssun/awt/WindowClosingListener.js
+            jssun/awt/WindowClosingSupport.js
+            java/awt/Window.js
+            java/util/Vector.js
+            java/awt/Color.js
+            java/awt/Paint.js
+            java/awt/Transparency.js
+            java/awt/ColorPaintContext.js
+            java/awt/PaintContext.js
+            java/awt/image/ColorModel.js
+            java/awt/color/ColorSpace.js
+            java/util/ResourceBundle.js
+            java/applet/Applet.js
+            java/net/URL.js
+            java/util/Hashtable.js
+            java/util/Dictionary.js
+            java/net/MalformedURLException.js
+            java/awt/GraphicsEnvironment.js
+            java/awt/event/WindowEvent.js
+            javax/swing/JComponent.js
+            javax/swing/Action.js
+            javax/swing/SwingUtilities.js
+            java/awt/Frame.js
+            java/awt/IllegalComponentStateException.js
+            javax/swing/SwingConstants.js
+            java/awt/Rectangle.js
+            java/awt/Shape.js
+            java/awt/geom/Rectangle2D.js
+            java/awt/geom/RectangularShape.js
+            java/awt/geom/FlatteningPathIterator.js
+            java/awt/geom/PathIterator.js
+            java/awt/geom/CubicCurve2D.js
+            java/awt/geom/CubicIterator.js
+            java/awt/geom/Line2D.js
+            java/awt/geom/LineIterator.js
+            java/awt/geom/QuadCurve2D.js
+            java/awt/geom/QuadIterator.js
+            jssun/awt/geom/Curve.js
+            java/awt/geom/IllegalPathStateException.js
+            java/awt/geom/RectIterator.js
+            java/awt/event/ActionEvent.js
+            java/awt/event/KeyEvent.js
+            java/awt/event/MouseWheelEvent.js
+            javax/swing/AbstractAction.js
+            javax/swing/AbstractButton.js
+            javax/swing/ArrayTable.js
+            javax/swing/event/SwingPropertyChangeSupport.js
+            javax/swing/JLayeredPane.js
+            javax/swing/JPanel.js
+            javax/swing/MultiUIDefaults.js
+
+            java/awt/Font.js
+            java/awt/font/TextAttribute.js
+            java/text/AttributedCharacterIterator.js
+            java/text/CharacterIterator.js
+               java/awt/geom/Point2D.js
+            java/awt/geom/AffineTransform.js
+            java/awt/geom/NoninvertibleTransformException.js
+            java/awt/geom/Path2D.js
+            javax/swing/Icon.js
+            javax/swing/JPasswordField.js
+            javax/swing/JTextField.js
+            javax/swing/ActionPropertyChangeListener.js
+            javax/swing/event/ChangeListener.js
+            javax/swing/ActionMap.js
+            javax/swing/InputMap.js
+            javax/swing/Scrollable.js
+            javax/swing/event/CaretEvent.js
+            javax/swing/event/DocumentListener.js
+            javax/swing/event/EventListenerList.js
+            javax/swing/event/ChangeEvent.js
+            jssun/swing/StringUIClientPropertyKey.js
+            jssun/swing/UIClientPropertyKey.js
+            java/awt/Graphics2D.js
+            java/awt/Graphics.js
+            jssun/font/FontDesignMetrics.js
+            java/awt/FontMetrics.js
+            
+            JU/PT.js
+            javajs/api/JSONEncodable.js
+            JU/AU.js
+            JU/Lst.js
+            JU/DF.js
+            JU/SB.js
+            JU/M34.js
+            JU/M4.js
+            JU/T3.js
+            javax/swing/JRootPane.js
+       
+            javax/swing/JToggleButton.js
+            javax/swing/ButtonModel.js
+            javax/swing/JRadioButton.js
+
+            javax/swing/JApplet.js
+
+            java/awt/EventQueue.js
+            java/awt/AWTEventMulticaster.js
+            java/awt/AWTEvent.js
+            java/awt/event/AWTEventListener.js
+            java/awt/ActiveEvent.js
+            java/awt/event/InvocationEvent.js
+            java/awt/event/ComponentEvent.js
+            java/awt/event/MouseEvent.js
+            java/awt/event/InputEvent.js
+            java/awt/Toolkit.js
+            java/lang/Thread.js
+            java/lang/ThreadGroup.js
+            java/awt/FlowLayout.js
+            java/awt/BorderLayout.js
+            java/awt/LayoutManager2.js
+            java/awt/LayoutManager.js
+            java/awt/GraphicsCallback.js
+            java/awt/Container.js
+            java/awt/Component.js
+            jssun/awt/SunGraphicsCallback.js
+
+            javax/swing/RepaintManager.js
+            jssun/awt/SunToolkit.js
+
+               java/awt/Conditional.js
+            java/awt/event/PaintEvent.js
+            java/awt/EventDispatchThread.js
+            java/awt/EventFilter.js
+            java/awt/ModalEventFilter.js
+            java/awt/peer/CanvasPeer.js
+            java/awt/peer/ComponentPeer.js
+            java/awt/peer/ContainerPeer.js
+            java/awt/peer/LightweightPeer.js
+            java/awt/peer/PanelPeer.js
+            java/awt/SentEvent.js
+            java/awt/SequencedEvent.js
+            java/util/AbstractSequentialList.js
+            java/util/LinkedList.js
+            JU/V3.js
+            javax/swing/ButtonGroup.js
+            javax/swing/SwingPaintEventDispatcher.js
+            jssun/awt/AWTAutoShutdown.js
+            jssun/awt/EventQueueItem.js
+            jssun/awt/ModalExclude.js
+            jssun/awt/NullComponentPeer.js
+            jssun/awt/PaintEventDispatcher.js
+            jssun/awt/PostEventQueue.js
+            jssun/java2d/SunGraphics2D.js
+
+               javax/swing/UIManager.js
+            javax/swing/UIDefaults.js
+            javax/swing/LookAndFeel.js
+            javax/swing/DropMode.js
+            java/awt/font/FontRenderContext.js
+            java/awt/event/InputMethodEvent.js
+            javax/swing/JViewport.js
+            java/awt/event/ComponentAdapter.js
+            javax/swing/CellRendererPane.js
+            jssun/awt/AWTAccessor.js
+            javax/swing/ViewportLayout.js
+            javax/swing/event/CaretListener.js
+            javax/swing/DefaultBoundedRangeModel.js
+            javax/swing/BoundedRangeModel.js
+            javax/swing/KeyStroke.js
+            java/awt/AWTKeyStroke.js
+            java/util/StringTokenizer.js
+            javax/swing/ComponentInputMap.js
+            jssun/swing/DefaultLayoutStyle.js
+            javax/swing/LayoutStyle.js
+            javax/swing/JCheckBox.js
+            java/awt/ItemSelectable.js
+            java/awt/event/ItemEvent.js
+            javax/swing/DefaultButtonModel.js
+            javax/swing/OverlayLayout.js
+            javax/swing/SizeRequirements.js
+            javax/swing/JLabel.js
+            javax/swing/border/Border.js
+            javax/swing/RootPaneContainer.js
+            javax/swing/event/MenuDragMouseEvent.js
+            jssun/swing/UIAction.js
+            jssun/awt/RequestFocusController.js
+            javax/swing/AncestorNotifier.js
+            javax/swing/event/AncestorEvent.js
+            javax/swing/event/AncestorListener.js
+            javax/swing/ClientPropertyKey.js
+            javax/swing/JDialog.js
+            java/awt/Dialog.js
+            javax/swing/WindowConstants.js
+            javax/swing/JFrame.js
+            javax/swing/JWindow.js
+            javax/swing/KeyboardManager.js
+            javax/swing/JMenuBar.js
+            javax/swing/MenuElement.js
+            javax/swing/DefaultSingleSelectionModel.js
+            javax/swing/SingleSelectionModel.js
+            javax/swing/JMenu.js
+            java/awt/event/WindowAdapter.js
+            javax/swing/JMenuItem.js
+            javax/swing/event/MenuDragMouseListener.js
+            javax/swing/event/MenuKeyEvent.js
+            javax/swing/event/MenuKeyListener.js
+            javax/swing/JPopupMenu.js
+            javax/swing/JSeparator.js
+            javax/swing/MenuSelectionManager.js
+            javax/swing/PopupFactory.js
+            javax/swing/Popup.js
+            javax/swing/SwingHeavyWeight.js
+            javax/swing/JToolTip.js
+            javax/swing/event/PopupMenuEvent.js
+            javax/swing/event/PopupMenuListener.js
+            javax/swing/event/MenuEvent.js
+            javax/swing/event/MenuListener.js
+            javax/swing/border/AbstractBorder.js
+            jssun/awt/PeerEvent.js
+            jssun/awt/image/URLImageSource.js
+            jssun/awt/image/InputStreamImageSource.js
+            java/awt/image/ImageProducer.js
+            jssun/awt/image/ImageFetchable.js
+            jssun/awt/image/ImageConsumerQueue.js
+            jssun/awt/image/ImageFetcher.js
+            java/awt/event/FocusEvent.js
+            java/awt/event/HierarchyEvent.js
+            jssun/awt/ConstrainableGraphics.js
+            jssun/awt/Graphics2Delegate.js
+            java/awt/event/ContainerEvent.js
+            jssun/applet/AppletEvent.js
+            jssun/applet/AppletEventMulticaster.js
+            jssun/applet/AppletListener.js
+            jssun/misc/Queue.js
+
+            javax/swing/plaf/UIResource.js
+            javax/swing/plaf/InputMapUIResource.js
+            javax/swing/plaf/ActionMapUIResource.js
+            javax/swing/plaf/ComponentUI.js
+            javax/swing/plaf/FontUIResource.js
+            javax/swing/plaf/ColorUIResource.js
+            javax/swing/plaf/ComponentInputMapUIResource.js
+
+               swingjs/api/JSFunction.js
+            swingjs/api/JSInterface.js
+            swingjs/api/Interface.js
+            swingjs/api/DOMNode.js
+
+               swingjs/JSUtil.js
+            swingjs/JSToolkit.js
+               swingjs/JSEvent.js
+               swingjs/JSThread.js
+            swingjs/JSThreadGroup.js
+            swingjs/JSAppletPanel.js
+            swingjs/JSGraphics2D.js
+            swingjs/JSAppletThread.js
+            swingjs/JSMouse.js
+            swingjs/JSComponentPeer.js
+
+                       swingjs/plaf/HTML5LookAndFeel.js
+            swingjs/plaf/JSComponentUI.js
+            swingjs/plaf/JSPanelUI.js
+            swingjs/plaf/JSRadioButtonUI.js
+            swingjs/plaf/JSRootPaneUI.js
+            swingjs/plaf/JSButtonListener.js
+            swingjs/plaf/JSButtonUI.js
+            swingjs/plaf/JSToggleButtonUI.js
+            swingjs/plaf/LazyActionMap.js
+    
+
+               "/>
+    </antcall>
+       -->
+<!--    
+
+       put classes in here temporarily to exclude them from the 
+       core load and make them easier to debug
+       
+               
+       minimize additional JSmol JavaScript -->
+
+  </target>
+
+
+  <target name="call-core" id="call-core">
+       <echo>......Creating core${call-core.name}.js</echo>    
+       <concat destfile="site/swingjs/js/core${call-core.name}.js">
+               <filelist dir="site/swingjs/j2s" files="${call-core.list}" />
+       </concat> 
+       <copy file="site/swingjs/js/core${call-core.name}.js" tofile="site/swingjs/js/core2.js" />
+       <!--
+               <echo>...removing unnecessary Clazz.defineStatics blocks</echo>
+         This next replacement does not work, because the j2s compiler does not 
+         distinguish between final and non-final static variable.
+         We will have to do this on a case-by-case basis. 
+          
+       <replaceregexp file="site/swingjs/js/core2.js" match="(Clazz.defineStatics ?\(((?![\[\(]).)*?\);)" flags="gs" replace="/*\1*/" /> 
+       <copy file="site/swingjs/js/core2.js" tofile="site/swingjs/js/core${call-core.name}3.js" />
+       
+       
+               java/io/InputStreamReader.js
+            javax/swing/text/JTextComponent.js
+            javax/swing/text/DefaultCaret.js
+            javax/swing/text/Caret.js
+            javax/swing/text/NavigationFilter.js
+            javax/swing/text/AbstractDocument.js
+            javax/swing/event/DocumentEvent.js
+            javax/swing/text/Document.js
+            javax/swing/text/DocumentFilter.js
+            javax/swing/text/Element.js
+            javax/swing/text/MutableAttributeSet.js
+            javax/swing/text/AttributeSet.js
+            javax/swing/tree/TreeNode.js
+            javax/swing/undo/AbstractUndoableEdit.js
+            javax/swing/undo/UndoableEdit.js
+            javax/swing/undo/CannotRedoException.js
+            javax/swing/undo/CannotUndoException.js
+            javax/swing/undo/CompoundEdit.js
+            javax/swing/event/UndoableEditEvent.js
+            javax/swing/event/UndoableEditListener.js
+            javax/swing/text/BadLocationException.js
+            javax/swing/text/SegmentCache.js
+            javax/swing/text/Segment.js
+            javax/swing/text/SimpleAttributeSet.js
+            javax/swing/text/StyleConstants.js
+            javax/swing/text/StateInvariantError.js
+            javax/swing/text/StyleContext.js
+            javax/swing/text/Style.js
+            javax/swing/text/Utilities.js
+            javax/swing/text/CompositeView.js
+            javax/swing/text/View.js
+            javax/swing/text/Position.js
+            javax/swing/text/StyledDocument.js
+               javax/swing/text/DefaultEditorKit.js
+               javax/swing/text/EditorKit.js
+            javax/swing/text/TextAction.js
+            javax/swing/text/PlainDocument.js
+            javax/swing/text/DefaultHighlighter.js
+            javax/swing/text/Highlighter.js
+            javax/swing/text/LayeredHighlighter.js
+            javax/swing/text/Keymap.js
+       
+        -->
+
+       <replace dir="site/swingjs/js" includes="core2.js" token="Clazz." value="Clazz_"/>
+       <replace dir="site/swingjs/js" includes="core2.js" token="Clazz__" value="Clazz._"/>
+       <replace dir="site/swingjs/js" includes="core2.js" token="($fz = " value=""/>
+       <replace dir="site/swingjs/js" includes="core2.js" token=", $fz.isPrivate = true, $fz)" value=""/>      
+       <replace dir="site/swingjs/js" includes="core2.js" token="Clazz_CheckPrivate" value="Clazz.CheckPrivate"/>      
+       <concat destfile="site/swingjs/js/core${call-core.name}.js"><filelist dir="site/swingjs/js" files="
+               core/coretop2.js
+               core2.js
+               core/corebottom2.js
+               " />
+       </concat>
+       <echo>......Generating core${call-core.name}.z.js</echo>        
+       <java jar="jars/closure_compiler.jar" fork="true" dir="site/swingjs/js" failonerror="false">
+               <arg line="--js core${call-core.name}.js --js_output_file ../j2s/core/core${call-core.name}.z.js" />
+    </java>
+  </target>
+
+  <target name="call-min" id="call-min">
+       <echo>......Creating JSmol.${call-min.minname}.js</echo>        
+       <concat destfile="site/swingjs/js/SwingJS.${call-min.fullname}.js">
+               <filelist dir="jsmoljs" files="${call-min.list}" />
+       </concat>   
+       <java jar="jars/closure_compiler.jar" fork="true" dir="" failonerror="false">
+               <arg line="--js site/swingjs/js/SwingJS.${call-min.fullname}.js --js_output_file site/swingjs/SwingJS.${call-min.minname}.js" />
+    </java>
+  </target>
+       
+</project>