X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2FREADME_SWINGJS.txt;fp=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2FREADME_SWINGJS.txt;h=32f0ad6588e8d23643a2afecefeb1b5559b7b7d8;hb=4898f0ae429e0c61ddba72ca46be89b34bb4df8b;hp=0000000000000000000000000000000000000000;hpb=5a6ac5b535856903629234ad43a71319a91ebee5;p=jalview.git diff --git a/srcjar/fr/orsay/lri/varna/README_SWINGJS.txt b/srcjar/fr/orsay/lri/varna/README_SWINGJS.txt new file mode 100644 index 0000000..32f0ad6 --- /dev/null +++ b/srcjar/fr/orsay/lri/varna/README_SWINGJS.txt @@ -0,0 +1,163 @@ + +Status +====== + +7/3/2018 + +VARNA is running in Jalview in a browser. + +The only capability not enabled is the "duplicate" menu item. +This is because SwingJS does not implement serialization. + +1/10/2018 + +fixes VueUI handling of JFileChooser and JColorChooser callbacks not using revised SelectedFile and SelectedColor property names +implements blinking iterator when dragging to reposition RNA blob +implements annotations + +1/7/2018 + +JTable implemented, including editing; needs better efficiency +Modal dialogs are working, including file open. +Drag-and-drop of Files is working + - note that the dropped File object has bytes field with data +Animated interpolation working; switched to simple JTimer mechanism for Java and JavaScript + +1/2/2018 + +Varna is running. +modal JOptionPane implemented fully +JColorChooser implemented fully +JTable implemented; still some minor issues + + +Modal dialogs are working, except for FileOpen. +Popup menu is working. + + +Issues +====== + +- JTable has minor issues: + - Headings are not shaded + - needs attention to higher efficiency + +- DnD only implemented for files. + - probably x,y coord are off - untested + - needs checking for isolated frames (works in applet) + + +Modifications for SwingJS +========================= + +Search for "@j2sNative", "BH", or "SwingJS" + + +VARNA.java +---------- + +moved to fr.orsay.lri.varna (all SwingJS project files must be in packages) + +adds default RNA JavaScript: + + if (!thisApplet.__Info.sequenceDBN) { + thisApplet.__Info.sequenceDBN = "GGGGCCAAUAUGGCCAUCC"; + thisApplet.__Info.structureDBN = "((((((.....))))..))"; + thisApplet.__Info.title = prompt("Title?","Hello RNA world, from SwingJS!"); + } + + + +fr.orsay.lri.varna.factories.RNAFactory +--------------------------------------- + +Cannot depend upon Java ArrayIndexOutOfBounds for trapping when testing formats + +JAVA fix: Removing unnecessary exception print stack traces during testing for formats +JAVA fix: RNAFactory was not closing file reader + + + +fr.orsay.lri.varna.applications.VARNAEditor +------------------------------------------- + +switched to RNAFactory.loadSecStr((File) o) for drag-drop allows passing byte data + + +fr.orsay.lri.varna.applications.VARNAGUI +---------------------------------------- + +switched to RNAFactory.loadSecStr((File) o) for drag-drop allows passing byte data + + + +fr.orsay.lri.varna.controlers.ControleurBaseSpecialColorEditor +-------------------------------------------------------------- + +Since the editor is not modal, we have to catch the window hiding event +before closing the editor. + + + +fr.orsay.lri.varna.controlers.ControleurInterpolator +---------------------------------------------------- + +switch to JTimer for interpolation +JavaScript uses 2-second delay; Java uses 15-second delay + + + +fr.orsay.lri.varna.views.PrinterTest.java +----------------------------------------- + +simpler test that does not use java.awt.font.TextLayout, which is not implemented. + + + +fr.orsay.lri.varna.VarnaPanel.java +---------------------------------- + +now implements PropertyChangeListener for asynchronous callback. + + + +fr.orsay.lri.varna.views.VueUI.java +------------------------------------ + +All JOptionPane, JFileChooser, and JColorChooser action made asynchronous. +Basically, the results OK, CANCEL, YES, NO, CLOSED, and custom button index +are delivered to instances of runnable via a PropertyChangeListener callback +to the indicated parent frame. + +Simple ERROR_OPTION and WARN_OPTION messages are handled via JavaScript Alert; +fall back options for simple showConfirmDialog and showInputDialog are used +automatically if the parent frame does not implement PropertyChangeListener. + +Initial JavaScript-only return is: + + for int-returning methods, NaN, + testable as value != Math.floor(value), where value is an int, and + for Object-returning methods, an Object that implements UIResource, + testable as event.getNewValue() instanceof UIResource. + +This allows full compatibility in Java and JavaScript. + + +See notes in fr.orsay.lri.varna.views.VueUI.java. + + + +fr.orsay.lri.varna.views.VueMenu.java +------------------------------------- + +changes JLabel to JMenuItem - not 100% sure why that is necessary. +changes JSeparator to JPopupMenu.Separator + + + +fr.orsay.lri.varna.views.VueAbout.java +-------------------------------------- + +added simple JTimer for asynchronous animation +added asynchronous callback modal option for JavaScript +