JAL-3026 srcjar files for VARNA and log4j
[jalview.git] / srcjar / fr / orsay / lri / varna / README_SWINGJS.txt
1
2 Status
3 ======
4
5 1/10/2018
6
7 fixes VueUI handling of JFileChooser and JColorChooser callbacks not using revised SelectedFile and SelectedColor property names
8 implements blinking iterator when dragging to reposition RNA blob
9 implements annotations 
10
11 1/7/2018
12
13 JTable implemented, including editing; needs better efficiency 
14 Modal dialogs are working, including file open.
15 Drag-and-drop of Files is working 
16  - note that the dropped File object has bytes field with data
17 Animated interpolation working; switched to simple JTimer mechanism for Java and JavaScript
18
19 1/2/2018
20
21 Varna is running.
22 modal JOptionPane implemented fully
23 JColorChooser implemented fully
24 JTable implemented; still some minor issues
25  
26
27 Modal dialogs are working, except for FileOpen.
28 Popup menu is working.
29
30
31 Issues
32 ======
33
34 - JTable has minor issues:
35  - Headings are not shaded
36  - needs attention to higher efficiency 
37
38 - DnD only implemented for files. 
39   - probably x,y coord are off - untested
40   - needs checking for isolated frames (works in applet)
41   
42
43 Modifications for SwingJS
44 =========================
45
46 Search for "@j2sNative", "BH", or "SwingJS"
47
48
49 VARNA.java 
50 ----------
51
52 moved to fr.orsay.lri.varna (all SwingJS project files must be in packages)
53
54 adds default RNA JavaScript:
55
56           if (!thisApplet.__Info.sequenceDBN) {
57            thisApplet.__Info.sequenceDBN = "GGGGCCAAUAUGGCCAUCC";
58            thisApplet.__Info.structureDBN = "((((((.....))))..))";
59            thisApplet.__Info.title = prompt("Title?","Hello RNA world, from SwingJS!");
60           } 
61
62
63
64 fr.orsay.lri.varna.factories.RNAFactory
65 ---------------------------------------
66
67 Cannot depend upon Java ArrayIndexOutOfBounds for trapping when testing formats
68
69 JAVA fix: Removing unnecessary exception print stack traces during testing for formats
70 JAVA fix: RNAFactory was not closing file reader
71
72
73
74 fr.orsay.lri.varna.applications.VARNAEditor
75 -------------------------------------------
76
77 switched to RNAFactory.loadSecStr((File) o) for drag-drop allows passing byte data
78
79
80 fr.orsay.lri.varna.applications.VARNAGUI
81 ----------------------------------------
82
83 switched to RNAFactory.loadSecStr((File) o) for drag-drop allows passing byte data
84
85
86  
87 fr.orsay.lri.varna.controlers.ControleurBaseSpecialColorEditor
88 --------------------------------------------------------------
89
90 Since the editor is not modal, we have to catch the window hiding event 
91 before closing the editor.
92
93
94
95 fr.orsay.lri.varna.controlers.ControleurInterpolator
96 ----------------------------------------------------
97
98 switch to JTimer for interpolation
99 JavaScript uses 2-second delay; Java uses 15-second delay
100
101
102
103 fr.orsay.lri.varna.views.PrinterTest.java
104 -----------------------------------------
105
106 simpler test that does not use java.awt.font.TextLayout, which is not implemented.
107
108
109
110 fr.orsay.lri.varna.VarnaPanel.java
111 ----------------------------------
112
113 now implements PropertyChangeListener for asynchronous callback.
114
115
116
117 fr.orsay.lri.varna.views.VueUI.java
118 ------------------------------------
119
120 All JOptionPane, JFileChooser, and JColorChooser action made asynchronous. 
121 Basically, the results OK, CANCEL, YES, NO, CLOSED, and custom button index
122 are delivered to instances of runnable via a PropertyChangeListener callback
123 to the indicated parent frame. 
124
125 Simple ERROR_OPTION and WARN_OPTION messages are handled via JavaScript Alert;
126 fall back options for simple showConfirmDialog and showInputDialog are used
127 automatically if the parent frame does not implement PropertyChangeListener. 
128
129 Initial JavaScript-only return is:
130
131  for int-returning methods, NaN, 
132    testable as value != Math.floor(value), where value is an int, and
133  for Object-returning methods, an Object that implements UIResource,  
134    testable as event.getNewValue() instanceof UIResource. 
135  
136 This allows full compatibility in Java and JavaScript.
137
138
139 See notes in fr.orsay.lri.varna.views.VueUI.java.
140  
141
142
143 fr.orsay.lri.varna.views.VueMenu.java
144 -------------------------------------
145
146 changes JLabel to JMenuItem - not 100% sure why that is necessary. 
147 changes JSeparator to JPopupMenu.Separator
148
149
150
151 fr.orsay.lri.varna.views.VueAbout.java
152 --------------------------------------
153
154 added simple JTimer for asynchronous animation
155 added asynchronous callback modal option for JavaScript
156