From: <ni...@us...> - 2006-09-15 21:18:31
|
Revision: 5553 http://svn.sourceforge.net/jmol/?rev=5553&view=rev Author: nicove Date: 2006-09-15 14:18:11 -0700 (Fri, 15 Sep 2006) Log Message: ----------- Feature request 1477291: Clear button in console Modified Paths: -------------- trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot trunk/Jmol/src/org/jmol/translation/Jmol/ca.po trunk/Jmol/src/org/jmol/translation/Jmol/de.po trunk/Jmol/src/org/jmol/translation/Jmol/es.po trunk/Jmol/src/org/jmol/translation/Jmol/et.po trunk/Jmol/src/org/jmol/translation/Jmol/fr.po trunk/Jmol/src/org/jmol/translation/Jmol/nl.po trunk/Jmol/src/org/jmol/translation/Jmol/pt.po trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java trunk/Jmol/src/org/openscience/jmol/app/PreferencesDialog.java Modified: trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot 2006-09-15 21:18:11 UTC (rev 5553) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" @@ -46,7 +46,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "" @@ -518,17 +518,17 @@ msgstr "" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "" @@ -586,39 +586,43 @@ msgstr "" #: org/openscience/jmol/app/GuiMap.java:165 +msgid "Clear console button (needs restarting Jmol)" +msgstr "" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "" -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "" -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "" -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "" -#: org/openscience/jmol/app/GuiMap.java:171 +#: org/openscience/jmol/app/GuiMap.java:172 msgid "Rotate molecule." msgstr "" -#: org/openscience/jmol/app/GuiMap.java:172 +#: org/openscience/jmol/app/GuiMap.java:173 msgid "Select an atom or region." msgstr "" -#: org/openscience/jmol/app/GuiMap.java:173 +#: org/openscience/jmol/app/GuiMap.java:174 msgid "View measurement table." msgstr "" -#: org/openscience/jmol/app/GuiMap.java:174 +#: org/openscience/jmol/app/GuiMap.java:175 msgid "Return molecule to home position." msgstr "" @@ -726,31 +730,36 @@ msgid "Jmol Java Console" msgstr "" -#: org/openscience/jmol/app/Jmol.java:480 +#: org/openscience/jmol/app/Jmol.java:476 +#: org/openscience/jmol/app/ScriptWindow.java:95 +msgid "Clear" +msgstr "" + +#: org/openscience/jmol/app/Jmol.java:489 msgid "Could not create ConsoleTextArea: " msgstr "" -#: org/openscience/jmol/app/Jmol.java:554 +#: org/openscience/jmol/app/Jmol.java:563 msgid "Closing Jmol..." msgstr "" -#: org/openscience/jmol/app/Jmol.java:790 +#: org/openscience/jmol/app/Jmol.java:799 msgid "Macros" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1110 +#: org/openscience/jmol/app/Jmol.java:1119 msgid "Open URL" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1111 +#: org/openscience/jmol/app/Jmol.java:1120 msgid "Enter URL of molecular model" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1198 +#: org/openscience/jmol/app/Jmol.java:1207 msgid "IO Exception:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1370 +#: org/openscience/jmol/app/Jmol.java:1379 msgid "File not loaded" msgstr "" @@ -960,7 +969,7 @@ msgstr "" #: org/openscience/jmol/app/PovrayDialog.java:492 -#: org/openscience/jmol/app/PreferencesDialog.java:161 +#: org/openscience/jmol/app/PreferencesDialog.java:163 #: org/openscience/jmol/app/RecentFilesDialog.java:69 msgid "Cancel" msgstr "" @@ -977,73 +986,73 @@ msgid "null component string" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:129 +#: org/openscience/jmol/app/PreferencesDialog.java:131 msgid "Preferences" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:146 +#: org/openscience/jmol/app/PreferencesDialog.java:148 msgid "Display" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:147 +#: org/openscience/jmol/app/PreferencesDialog.java:149 msgid "Atoms" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:148 +#: org/openscience/jmol/app/PreferencesDialog.java:150 msgid "Bonds" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:153 +#: org/openscience/jmol/app/PreferencesDialog.java:155 msgid "Jmol Defaults" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:157 +#: org/openscience/jmol/app/PreferencesDialog.java:159 msgid "RasMol Defaults" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:165 +#: org/openscience/jmol/app/PreferencesDialog.java:167 msgid "Apply" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:193 +#: org/openscience/jmol/app/PreferencesDialog.java:195 msgid "Show All" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:287 +#: org/openscience/jmol/app/PreferencesDialog.java:294 msgid "Default atom size" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:288 +#: org/openscience/jmol/app/PreferencesDialog.java:295 msgid "(percentage of vanDerWaals radius)" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:340 +#: org/openscience/jmol/app/PreferencesDialog.java:347 msgid "Compute Bonds" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:342 +#: org/openscience/jmol/app/PreferencesDialog.java:349 msgid "Automatically" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:343 +#: org/openscience/jmol/app/PreferencesDialog.java:350 msgid "Don't Compute Bonds" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:370 +#: org/openscience/jmol/app/PreferencesDialog.java:377 msgid "Default Bond Radius" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:371 -#: org/openscience/jmol/app/PreferencesDialog.java:409 -#: org/openscience/jmol/app/PreferencesDialog.java:460 +#: org/openscience/jmol/app/PreferencesDialog.java:378 +#: org/openscience/jmol/app/PreferencesDialog.java:416 +#: org/openscience/jmol/app/PreferencesDialog.java:467 msgid "(Angstroms)" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:408 +#: org/openscience/jmol/app/PreferencesDialog.java:415 msgid "Bond Tolerance - sum of two covalent radii + this value" msgstr "" -#: org/openscience/jmol/app/PreferencesDialog.java:459 +#: org/openscience/jmol/app/PreferencesDialog.java:466 msgid "Minimum Bonding Distance" msgstr "" @@ -1063,10 +1072,6 @@ msgid "Halt" msgstr "" -#: org/openscience/jmol/app/ScriptWindow.java:95 -msgid "Clear" -msgstr "" - #: org/openscience/jmol/app/ScriptWindow.java:99 msgid "Help" msgstr "" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/ca.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/ca.po 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/ca.po 2006-09-15 21:18:11 UTC (rev 5553) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: 2006-01-30 03:35+0100\n" "Last-Translator: Toni Hermoso Pulido <to...@so...>\n" "Language-Team: Catalan <jmo...@li...>\n" @@ -49,7 +49,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "D'acord" @@ -521,17 +521,17 @@ msgstr "Atura l'animació" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "Rebobina fins al primer fotograma" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "Vés al següent fotograma" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "Vés a l'anterior fotograma" @@ -590,39 +590,44 @@ msgstr "Visualització prèvia del fitxer (cal reiniciar el Jmol)" #: org/openscience/jmol/app/GuiMap.java:165 +#, fuzzy +msgid "Clear console button (needs restarting Jmol)" +msgstr "Visualització prèvia del fitxer (cal reiniciar el Jmol)" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "Utilitza el color dels àtoms" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "Obre un fitxer." -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "Exporta la visualització a un fitxer d'imatge." -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "Renderitza en el POV-Ray." -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "Imprimeix la visualització." -#: org/openscience/jmol/app/GuiMap.java:171 +#: org/openscience/jmol/app/GuiMap.java:172 msgid "Rotate molecule." msgstr "Rota la molècula." -#: org/openscience/jmol/app/GuiMap.java:172 +#: org/openscience/jmol/app/GuiMap.java:173 msgid "Select an atom or region." msgstr "Selecciona un àtom o una regió." -#: org/openscience/jmol/app/GuiMap.java:173 +#: org/openscience/jmol/app/GuiMap.java:174 msgid "View measurement table." msgstr "Visualitza la taula de mesures." -#: org/openscience/jmol/app/GuiMap.java:174 +#: org/openscience/jmol/app/GuiMap.java:175 msgid "Return molecule to home position." msgstr "Retorna la molècula a la posició inicial." @@ -735,31 +740,36 @@ msgid "Jmol Java Console" msgstr "Consola del Jmol" -#: org/openscience/jmol/app/Jmol.java:480 +#: org/openscience/jmol/app/Jmol.java:476 +#: org/openscience/jmol/app/ScriptWindow.java:95 +msgid "Clear" +msgstr "Neteja" + +#: org/openscience/jmol/app/Jmol.java:489 msgid "Could not create ConsoleTextArea: " msgstr "No s'ha pogut crear l'àrea de text de la consola:" -#: org/openscience/jmol/app/Jmol.java:554 +#: org/openscience/jmol/app/Jmol.java:563 msgid "Closing Jmol..." msgstr "S'està tancant el Jmol..." -#: org/openscience/jmol/app/Jmol.java:790 +#: org/openscience/jmol/app/Jmol.java:799 msgid "Macros" msgstr "Macroinstruccions" -#: org/openscience/jmol/app/Jmol.java:1110 +#: org/openscience/jmol/app/Jmol.java:1119 msgid "Open URL" msgstr "Obre un URL" -#: org/openscience/jmol/app/Jmol.java:1111 +#: org/openscience/jmol/app/Jmol.java:1120 msgid "Enter URL of molecular model" msgstr "Introduïu l'URL d'un model molecular" -#: org/openscience/jmol/app/Jmol.java:1198 +#: org/openscience/jmol/app/Jmol.java:1207 msgid "IO Exception:" msgstr "S'ha produït una excepció IO:" -#: org/openscience/jmol/app/Jmol.java:1370 +#: org/openscience/jmol/app/Jmol.java:1379 msgid "File not loaded" msgstr "No s'ha carregat el fitxer" @@ -971,7 +981,7 @@ msgstr "Desa el fitxer i possiblement executa el POV-Ray" #: org/openscience/jmol/app/PovrayDialog.java:492 -#: org/openscience/jmol/app/PreferencesDialog.java:161 +#: org/openscience/jmol/app/PreferencesDialog.java:163 #: org/openscience/jmol/app/RecentFilesDialog.java:69 msgid "Cancel" msgstr "Cancel·la" @@ -988,73 +998,73 @@ msgid "null component string" msgstr "cadena de component nul" -#: org/openscience/jmol/app/PreferencesDialog.java:129 +#: org/openscience/jmol/app/PreferencesDialog.java:131 msgid "Preferences" msgstr "Preferències" -#: org/openscience/jmol/app/PreferencesDialog.java:146 +#: org/openscience/jmol/app/PreferencesDialog.java:148 msgid "Display" msgstr "Visualització" -#: org/openscience/jmol/app/PreferencesDialog.java:147 +#: org/openscience/jmol/app/PreferencesDialog.java:149 msgid "Atoms" msgstr "Àtoms" -#: org/openscience/jmol/app/PreferencesDialog.java:148 +#: org/openscience/jmol/app/PreferencesDialog.java:150 msgid "Bonds" msgstr "Enllaços" -#: org/openscience/jmol/app/PreferencesDialog.java:153 +#: org/openscience/jmol/app/PreferencesDialog.java:155 msgid "Jmol Defaults" msgstr "Paràmetres per defecte del Jmol" -#: org/openscience/jmol/app/PreferencesDialog.java:157 +#: org/openscience/jmol/app/PreferencesDialog.java:159 msgid "RasMol Defaults" msgstr "Paràmetres per defecte del RasMol" -#: org/openscience/jmol/app/PreferencesDialog.java:165 +#: org/openscience/jmol/app/PreferencesDialog.java:167 msgid "Apply" msgstr "Aplica" -#: org/openscience/jmol/app/PreferencesDialog.java:193 +#: org/openscience/jmol/app/PreferencesDialog.java:195 msgid "Show All" msgstr "Mostra-ho tot" -#: org/openscience/jmol/app/PreferencesDialog.java:287 +#: org/openscience/jmol/app/PreferencesDialog.java:294 msgid "Default atom size" msgstr "Mida per defecte de l'atom" -#: org/openscience/jmol/app/PreferencesDialog.java:288 +#: org/openscience/jmol/app/PreferencesDialog.java:295 msgid "(percentage of vanDerWaals radius)" msgstr "(percentatge de radi de Van der Waals)" -#: org/openscience/jmol/app/PreferencesDialog.java:340 +#: org/openscience/jmol/app/PreferencesDialog.java:347 msgid "Compute Bonds" msgstr "Computa els enllaços" -#: org/openscience/jmol/app/PreferencesDialog.java:342 +#: org/openscience/jmol/app/PreferencesDialog.java:349 msgid "Automatically" msgstr "Automàticament" -#: org/openscience/jmol/app/PreferencesDialog.java:343 +#: org/openscience/jmol/app/PreferencesDialog.java:350 msgid "Don't Compute Bonds" msgstr "No computis els enllaços" -#: org/openscience/jmol/app/PreferencesDialog.java:370 +#: org/openscience/jmol/app/PreferencesDialog.java:377 msgid "Default Bond Radius" msgstr "Radi per defecte de l'enllaç" -#: org/openscience/jmol/app/PreferencesDialog.java:371 -#: org/openscience/jmol/app/PreferencesDialog.java:409 -#: org/openscience/jmol/app/PreferencesDialog.java:460 +#: org/openscience/jmol/app/PreferencesDialog.java:378 +#: org/openscience/jmol/app/PreferencesDialog.java:416 +#: org/openscience/jmol/app/PreferencesDialog.java:467 msgid "(Angstroms)" msgstr "(Àmstrongs)" -#: org/openscience/jmol/app/PreferencesDialog.java:408 +#: org/openscience/jmol/app/PreferencesDialog.java:415 msgid "Bond Tolerance - sum of two covalent radii + this value" msgstr "Tolerància d'enllaç - suma de dos radis covalents + aquest valor" -#: org/openscience/jmol/app/PreferencesDialog.java:459 +#: org/openscience/jmol/app/PreferencesDialog.java:466 msgid "Minimum Bonding Distance" msgstr "Distància mínima d'enllaç" @@ -1074,10 +1084,6 @@ msgid "Halt" msgstr "Para" -#: org/openscience/jmol/app/ScriptWindow.java:95 -msgid "Clear" -msgstr "Neteja" - #: org/openscience/jmol/app/ScriptWindow.java:99 msgid "Help" msgstr "Ajuda" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/de.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/de.po 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/de.po 2006-09-15 21:18:11 UTC (rev 5553) @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Jmol 10\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: 2006-04-14 18:00+0100\n" "Last-Translator: Sebastian Lisken <sebastianlisken at users.sourceforge." "net>\n" @@ -50,7 +50,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "OK" @@ -522,17 +522,17 @@ msgstr "Animation stoppen" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "Zurück zum ersten Frame" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "Zum nächsten Frame" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "Zum vorherigen Frame" @@ -591,39 +591,44 @@ msgstr "Datei-Vorschau (Neustart erforderlich)" #: org/openscience/jmol/app/GuiMap.java:165 +#, fuzzy +msgid "Clear console button (needs restarting Jmol)" +msgstr "Datei-Vorschau (Neustart erforderlich)" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "Atomfarbe anwenden" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "Eine Datei öffnen." -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "Ansicht in einer Bilddatei exportieren." -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "In POV-Ray rendern." -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "Druckvorschau." -#: org/openscience/jmol/app/GuiMap.java:171 +#: org/openscience/jmol/app/GuiMap.java:172 msgid "Rotate molecule." msgstr "Molekül drehen." -#: org/openscience/jmol/app/GuiMap.java:172 +#: org/openscience/jmol/app/GuiMap.java:173 msgid "Select an atom or region." msgstr "Ein Atom oder einen Bereich markieren." -#: org/openscience/jmol/app/GuiMap.java:173 +#: org/openscience/jmol/app/GuiMap.java:174 msgid "View measurement table." msgstr "Messungen-Tabelle anzeigen." -#: org/openscience/jmol/app/GuiMap.java:174 +#: org/openscience/jmol/app/GuiMap.java:175 msgid "Return molecule to home position." msgstr "Molekül in Ausgangsposition bringen." @@ -734,31 +739,36 @@ msgid "Jmol Java Console" msgstr "Jmol-Konsole" -#: org/openscience/jmol/app/Jmol.java:480 +#: org/openscience/jmol/app/Jmol.java:476 +#: org/openscience/jmol/app/ScriptWindow.java:95 +msgid "Clear" +msgstr "Leeren" + +#: org/openscience/jmol/app/Jmol.java:489 msgid "Could not create ConsoleTextArea: " msgstr "ConsoleTextArea konnte nicht erstellt werden: " -#: org/openscience/jmol/app/Jmol.java:554 +#: org/openscience/jmol/app/Jmol.java:563 msgid "Closing Jmol..." msgstr "Beende Jmol..." -#: org/openscience/jmol/app/Jmol.java:790 +#: org/openscience/jmol/app/Jmol.java:799 msgid "Macros" msgstr "Makros" -#: org/openscience/jmol/app/Jmol.java:1110 +#: org/openscience/jmol/app/Jmol.java:1119 msgid "Open URL" msgstr "URL öffnen" -#: org/openscience/jmol/app/Jmol.java:1111 +#: org/openscience/jmol/app/Jmol.java:1120 msgid "Enter URL of molecular model" msgstr "URL eines Molekül-Modells eingeben" -#: org/openscience/jmol/app/Jmol.java:1198 +#: org/openscience/jmol/app/Jmol.java:1207 msgid "IO Exception:" msgstr "IO-Fehler:" -#: org/openscience/jmol/app/Jmol.java:1370 +#: org/openscience/jmol/app/Jmol.java:1379 msgid "File not loaded" msgstr "Datei wurde nicht geladen" @@ -972,7 +982,7 @@ msgstr "Datei speichern und wenn möglich POV-Ray starten" #: org/openscience/jmol/app/PovrayDialog.java:492 -#: org/openscience/jmol/app/PreferencesDialog.java:161 +#: org/openscience/jmol/app/PreferencesDialog.java:163 #: org/openscience/jmol/app/RecentFilesDialog.java:69 msgid "Cancel" msgstr "Abbrechen" @@ -989,73 +999,73 @@ msgid "null component string" msgstr "String ohne Komponenten" -#: org/openscience/jmol/app/PreferencesDialog.java:129 +#: org/openscience/jmol/app/PreferencesDialog.java:131 msgid "Preferences" msgstr "Einstellungen" -#: org/openscience/jmol/app/PreferencesDialog.java:146 +#: org/openscience/jmol/app/PreferencesDialog.java:148 msgid "Display" msgstr "Anzeige" -#: org/openscience/jmol/app/PreferencesDialog.java:147 +#: org/openscience/jmol/app/PreferencesDialog.java:149 msgid "Atoms" msgstr "Atome" -#: org/openscience/jmol/app/PreferencesDialog.java:148 +#: org/openscience/jmol/app/PreferencesDialog.java:150 msgid "Bonds" msgstr "Bindungen" -#: org/openscience/jmol/app/PreferencesDialog.java:153 +#: org/openscience/jmol/app/PreferencesDialog.java:155 msgid "Jmol Defaults" msgstr "Jmol-Standards" -#: org/openscience/jmol/app/PreferencesDialog.java:157 +#: org/openscience/jmol/app/PreferencesDialog.java:159 msgid "RasMol Defaults" msgstr "RasMol-Standards" -#: org/openscience/jmol/app/PreferencesDialog.java:165 +#: org/openscience/jmol/app/PreferencesDialog.java:167 msgid "Apply" msgstr "Anwenden" -#: org/openscience/jmol/app/PreferencesDialog.java:193 +#: org/openscience/jmol/app/PreferencesDialog.java:195 msgid "Show All" msgstr "Alle zeigen" -#: org/openscience/jmol/app/PreferencesDialog.java:287 +#: org/openscience/jmol/app/PreferencesDialog.java:294 msgid "Default atom size" msgstr "Standard Atomgröße" -#: org/openscience/jmol/app/PreferencesDialog.java:288 +#: org/openscience/jmol/app/PreferencesDialog.java:295 msgid "(percentage of vanDerWaals radius)" msgstr "(in Prozent des van-der-Waals-Radius)" -#: org/openscience/jmol/app/PreferencesDialog.java:340 +#: org/openscience/jmol/app/PreferencesDialog.java:347 msgid "Compute Bonds" msgstr "Bindungen berechnen" -#: org/openscience/jmol/app/PreferencesDialog.java:342 +#: org/openscience/jmol/app/PreferencesDialog.java:349 msgid "Automatically" msgstr "Automatisch" -#: org/openscience/jmol/app/PreferencesDialog.java:343 +#: org/openscience/jmol/app/PreferencesDialog.java:350 msgid "Don't Compute Bonds" msgstr "Bindungen nicht berechnen" -#: org/openscience/jmol/app/PreferencesDialog.java:370 +#: org/openscience/jmol/app/PreferencesDialog.java:377 msgid "Default Bond Radius" msgstr "Standard Bindungsradius" -#: org/openscience/jmol/app/PreferencesDialog.java:371 -#: org/openscience/jmol/app/PreferencesDialog.java:409 -#: org/openscience/jmol/app/PreferencesDialog.java:460 +#: org/openscience/jmol/app/PreferencesDialog.java:378 +#: org/openscience/jmol/app/PreferencesDialog.java:416 +#: org/openscience/jmol/app/PreferencesDialog.java:467 msgid "(Angstroms)" msgstr "(in Ångström)" -#: org/openscience/jmol/app/PreferencesDialog.java:408 +#: org/openscience/jmol/app/PreferencesDialog.java:415 msgid "Bond Tolerance - sum of two covalent radii + this value" msgstr "Toleranz der Bindung - Summe zweier kovalenter Radien + dieser Wert" -#: org/openscience/jmol/app/PreferencesDialog.java:459 +#: org/openscience/jmol/app/PreferencesDialog.java:466 msgid "Minimum Bonding Distance" msgstr "Minimaler Bindungsabstand" @@ -1075,10 +1085,6 @@ msgid "Halt" msgstr "Stoppen" -#: org/openscience/jmol/app/ScriptWindow.java:95 -msgid "Clear" -msgstr "Leeren" - #: org/openscience/jmol/app/ScriptWindow.java:99 msgid "Help" msgstr "Hilfe" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/es.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/es.po 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/es.po 2006-09-15 21:18:11 UTC (rev 5553) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Jmol 10\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: 2006-03-24 20:08+0100\n" "Last-Translator: Angel Herráez <ang...@ua...>\n" "Language-Team: Spanish <Jmo...@li...>\n" @@ -49,7 +49,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "Aceptar" @@ -521,17 +521,17 @@ msgstr "Detener" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "Rebobinar" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "Fotograma siguiente" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "Fotograma anterior" @@ -590,39 +590,44 @@ msgstr "Previsualización de archivos (requiere reiniciar Jmol)" #: org/openscience/jmol/app/GuiMap.java:165 +#, fuzzy +msgid "Clear console button (needs restarting Jmol)" +msgstr "Previsualización de archivos (requiere reiniciar Jmol)" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "Usar color del átomo" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "Abrir un archivo." -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "Exportar vista a archivo de imagen." -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "Preparar para POV-Ray." -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "Previsualizar." -#: org/openscience/jmol/app/GuiMap.java:171 +#: org/openscience/jmol/app/GuiMap.java:172 msgid "Rotate molecule." msgstr "Rotar molécula." -#: org/openscience/jmol/app/GuiMap.java:172 +#: org/openscience/jmol/app/GuiMap.java:173 msgid "Select an atom or region." msgstr "Seleccionar un átomo o región." -#: org/openscience/jmol/app/GuiMap.java:173 +#: org/openscience/jmol/app/GuiMap.java:174 msgid "View measurement table." msgstr "Ver tabla de mediciones" -#: org/openscience/jmol/app/GuiMap.java:174 +#: org/openscience/jmol/app/GuiMap.java:175 msgid "Return molecule to home position." msgstr "Devolver molécula a la posición original" @@ -731,31 +736,36 @@ msgid "Jmol Java Console" msgstr "Consola de Jmol" -#: org/openscience/jmol/app/Jmol.java:480 +#: org/openscience/jmol/app/Jmol.java:476 +#: org/openscience/jmol/app/ScriptWindow.java:95 +msgid "Clear" +msgstr "Limpiar" + +#: org/openscience/jmol/app/Jmol.java:489 msgid "Could not create ConsoleTextArea: " msgstr "No se pudo crear el área de texto de la consola" -#: org/openscience/jmol/app/Jmol.java:554 +#: org/openscience/jmol/app/Jmol.java:563 msgid "Closing Jmol..." msgstr "Cerrando Jmol..." -#: org/openscience/jmol/app/Jmol.java:790 +#: org/openscience/jmol/app/Jmol.java:799 msgid "Macros" msgstr "Macros" -#: org/openscience/jmol/app/Jmol.java:1110 +#: org/openscience/jmol/app/Jmol.java:1119 msgid "Open URL" msgstr "Abrir URL" -#: org/openscience/jmol/app/Jmol.java:1111 +#: org/openscience/jmol/app/Jmol.java:1120 msgid "Enter URL of molecular model" msgstr "Escribe la URL del modelo molecular" -#: org/openscience/jmol/app/Jmol.java:1198 +#: org/openscience/jmol/app/Jmol.java:1207 msgid "IO Exception:" msgstr "Error de entrada/salida:" -#: org/openscience/jmol/app/Jmol.java:1370 +#: org/openscience/jmol/app/Jmol.java:1379 msgid "File not loaded" msgstr "El archivo no se ha cargado" @@ -970,7 +980,7 @@ msgstr "Guardar archivo y posiblemente iniciar POV-Ray" #: org/openscience/jmol/app/PovrayDialog.java:492 -#: org/openscience/jmol/app/PreferencesDialog.java:161 +#: org/openscience/jmol/app/PreferencesDialog.java:163 #: org/openscience/jmol/app/RecentFilesDialog.java:69 msgid "Cancel" msgstr "Cancelar" @@ -987,73 +997,73 @@ msgid "null component string" msgstr "cadena de componente nulo" -#: org/openscience/jmol/app/PreferencesDialog.java:129 +#: org/openscience/jmol/app/PreferencesDialog.java:131 msgid "Preferences" msgstr "Preferencias" -#: org/openscience/jmol/app/PreferencesDialog.java:146 +#: org/openscience/jmol/app/PreferencesDialog.java:148 msgid "Display" msgstr "Estilo" -#: org/openscience/jmol/app/PreferencesDialog.java:147 +#: org/openscience/jmol/app/PreferencesDialog.java:149 msgid "Atoms" msgstr "Atomos" -#: org/openscience/jmol/app/PreferencesDialog.java:148 +#: org/openscience/jmol/app/PreferencesDialog.java:150 msgid "Bonds" msgstr "Enlaces" -#: org/openscience/jmol/app/PreferencesDialog.java:153 +#: org/openscience/jmol/app/PreferencesDialog.java:155 msgid "Jmol Defaults" msgstr "Predeterminados de Jmol" -#: org/openscience/jmol/app/PreferencesDialog.java:157 +#: org/openscience/jmol/app/PreferencesDialog.java:159 msgid "RasMol Defaults" msgstr "Predeterminados de Rasmol" -#: org/openscience/jmol/app/PreferencesDialog.java:165 +#: org/openscience/jmol/app/PreferencesDialog.java:167 msgid "Apply" msgstr "Aplicar" -#: org/openscience/jmol/app/PreferencesDialog.java:193 +#: org/openscience/jmol/app/PreferencesDialog.java:195 msgid "Show All" msgstr "Mostrar todo" -#: org/openscience/jmol/app/PreferencesDialog.java:287 +#: org/openscience/jmol/app/PreferencesDialog.java:294 msgid "Default atom size" msgstr "Tamaño predeterminado de átomos" -#: org/openscience/jmol/app/PreferencesDialog.java:288 +#: org/openscience/jmol/app/PreferencesDialog.java:295 msgid "(percentage of vanDerWaals radius)" msgstr "(porcentaje del radio de Van der Waals)" -#: org/openscience/jmol/app/PreferencesDialog.java:340 +#: org/openscience/jmol/app/PreferencesDialog.java:347 msgid "Compute Bonds" msgstr "Calcular enlaces" -#: org/openscience/jmol/app/PreferencesDialog.java:342 +#: org/openscience/jmol/app/PreferencesDialog.java:349 msgid "Automatically" msgstr "Automáticamente" -#: org/openscience/jmol/app/PreferencesDialog.java:343 +#: org/openscience/jmol/app/PreferencesDialog.java:350 msgid "Don't Compute Bonds" msgstr "No calcular enlaces" -#: org/openscience/jmol/app/PreferencesDialog.java:370 +#: org/openscience/jmol/app/PreferencesDialog.java:377 msgid "Default Bond Radius" msgstr "Radio predeterminado de enlaces" -#: org/openscience/jmol/app/PreferencesDialog.java:371 -#: org/openscience/jmol/app/PreferencesDialog.java:409 -#: org/openscience/jmol/app/PreferencesDialog.java:460 +#: org/openscience/jmol/app/PreferencesDialog.java:378 +#: org/openscience/jmol/app/PreferencesDialog.java:416 +#: org/openscience/jmol/app/PreferencesDialog.java:467 msgid "(Angstroms)" msgstr "(Angstroms)" -#: org/openscience/jmol/app/PreferencesDialog.java:408 +#: org/openscience/jmol/app/PreferencesDialog.java:415 msgid "Bond Tolerance - sum of two covalent radii + this value" msgstr "Tolerancia de enlace: suma de dos radios covalentes + este valor" -#: org/openscience/jmol/app/PreferencesDialog.java:459 +#: org/openscience/jmol/app/PreferencesDialog.java:466 msgid "Minimum Bonding Distance" msgstr "Mínima distancia de enlace" @@ -1073,10 +1083,6 @@ msgid "Halt" msgstr "Detener" -#: org/openscience/jmol/app/ScriptWindow.java:95 -msgid "Clear" -msgstr "Limpiar" - #: org/openscience/jmol/app/ScriptWindow.java:99 msgid "Help" msgstr "Ayuda" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/et.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/et.po 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/et.po 2006-09-15 21:18:11 UTC (rev 5553) @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: 2006-03-17 20:19+0100\n" "Last-Translator: Ivo Sarak <iv...@ra...>\n" "Language-Team: Estonian <Jmo...@li...>\n" @@ -49,7 +49,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "Nõus" @@ -521,17 +521,17 @@ msgstr "Seiska animatsioon" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "Keri tagasi esimese kaadrini" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "Mine järgmise kaadri juurde" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "Mine eelmise kaadri juurde" @@ -590,39 +590,44 @@ msgstr "Faili eelvaade (vajab Jmol'i taaskäivitust)" #: org/openscience/jmol/app/GuiMap.java:165 +#, fuzzy +msgid "Clear console button (needs restarting Jmol)" +msgstr "Faili eelvaade (vajab Jmol'i taaskäivitust)" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "Aatomi värvi kasutamine" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "Faili avamine." -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "Ekspordi vaade pildi faili." -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "Renderda pov-ray's." -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "Prindi vaade." -#: org/openscience/jmol/app/GuiMap.java:171 +#: org/openscience/jmol/app/GuiMap.java:172 msgid "Rotate molecule." msgstr "Keera molekuli" -#: org/openscience/jmol/app/GuiMap.java:172 +#: org/openscience/jmol/app/GuiMap.java:173 msgid "Select an atom or region." msgstr "Vali aatom või regioon." -#: org/openscience/jmol/app/GuiMap.java:173 +#: org/openscience/jmol/app/GuiMap.java:174 msgid "View measurement table." msgstr "Vaata mõõtetabelit." -#: org/openscience/jmol/app/GuiMap.java:174 +#: org/openscience/jmol/app/GuiMap.java:175 msgid "Return molecule to home position." msgstr "Taasta molekuli lähtepositsioon." @@ -731,31 +736,36 @@ msgid "Jmol Java Console" msgstr "Jmol konsool" -#: org/openscience/jmol/app/Jmol.java:480 +#: org/openscience/jmol/app/Jmol.java:476 +#: org/openscience/jmol/app/ScriptWindow.java:95 +msgid "Clear" +msgstr "Puhasta" + +#: org/openscience/jmol/app/Jmol.java:489 msgid "Could not create ConsoleTextArea: " msgstr "Ei saa luua ConsoleTextArea: " -#: org/openscience/jmol/app/Jmol.java:554 +#: org/openscience/jmol/app/Jmol.java:563 msgid "Closing Jmol..." msgstr "Jmol sulgemine..." -#: org/openscience/jmol/app/Jmol.java:790 +#: org/openscience/jmol/app/Jmol.java:799 msgid "Macros" msgstr "Makrod" -#: org/openscience/jmol/app/Jmol.java:1110 +#: org/openscience/jmol/app/Jmol.java:1119 msgid "Open URL" msgstr "Ava URL" -#: org/openscience/jmol/app/Jmol.java:1111 +#: org/openscience/jmol/app/Jmol.java:1120 msgid "Enter URL of molecular model" msgstr "Sisesta molekulaarmudeli URL" -#: org/openscience/jmol/app/Jmol.java:1198 +#: org/openscience/jmol/app/Jmol.java:1207 msgid "IO Exception:" msgstr "IO eriolukord:" -#: org/openscience/jmol/app/Jmol.java:1370 +#: org/openscience/jmol/app/Jmol.java:1379 msgid "File not loaded" msgstr "Fail ei ole loetud" @@ -966,7 +976,7 @@ msgstr "Salvesta see fail ning võimalusel käivita povray" #: org/openscience/jmol/app/PovrayDialog.java:492 -#: org/openscience/jmol/app/PreferencesDialog.java:161 +#: org/openscience/jmol/app/PreferencesDialog.java:163 #: org/openscience/jmol/app/RecentFilesDialog.java:69 msgid "Cancel" msgstr "Katkesta" @@ -983,73 +993,73 @@ msgid "null component string" msgstr "tühi komponent string" -#: org/openscience/jmol/app/PreferencesDialog.java:129 +#: org/openscience/jmol/app/PreferencesDialog.java:131 msgid "Preferences" msgstr "Eelistused" -#: org/openscience/jmol/app/PreferencesDialog.java:146 +#: org/openscience/jmol/app/PreferencesDialog.java:148 msgid "Display" msgstr "Kuva" -#: org/openscience/jmol/app/PreferencesDialog.java:147 +#: org/openscience/jmol/app/PreferencesDialog.java:149 msgid "Atoms" msgstr "Aatomid" -#: org/openscience/jmol/app/PreferencesDialog.java:148 +#: org/openscience/jmol/app/PreferencesDialog.java:150 msgid "Bonds" msgstr "Sidemed" -#: org/openscience/jmol/app/PreferencesDialog.java:153 +#: org/openscience/jmol/app/PreferencesDialog.java:155 msgid "Jmol Defaults" msgstr "Jmol vaikeväärtused" -#: org/openscience/jmol/app/PreferencesDialog.java:157 +#: org/openscience/jmol/app/PreferencesDialog.java:159 msgid "RasMol Defaults" msgstr "RasMol vaikeväärtused" -#: org/openscience/jmol/app/PreferencesDialog.java:165 +#: org/openscience/jmol/app/PreferencesDialog.java:167 msgid "Apply" msgstr "Kehtesta" -#: org/openscience/jmol/app/PreferencesDialog.java:193 +#: org/openscience/jmol/app/PreferencesDialog.java:195 msgid "Show All" msgstr "Näita kõike" -#: org/openscience/jmol/app/PreferencesDialog.java:287 +#: org/openscience/jmol/app/PreferencesDialog.java:294 msgid "Default atom size" msgstr "Aatomi suuruse vaikeväärtus" -#: org/openscience/jmol/app/PreferencesDialog.java:288 +#: org/openscience/jmol/app/PreferencesDialog.java:295 msgid "(percentage of vanDerWaals radius)" msgstr "(protsenti vanDerWaals raadiusest)" -#: org/openscience/jmol/app/PreferencesDialog.java:340 +#: org/openscience/jmol/app/PreferencesDialog.java:347 msgid "Compute Bonds" msgstr "Arvuta sidemed" -#: org/openscience/jmol/app/PreferencesDialog.java:342 +#: org/openscience/jmol/app/PreferencesDialog.java:349 msgid "Automatically" msgstr "Automaatselt" -#: org/openscience/jmol/app/PreferencesDialog.java:343 +#: org/openscience/jmol/app/PreferencesDialog.java:350 msgid "Don't Compute Bonds" msgstr "Ära arvuta sidemeid" -#: org/openscience/jmol/app/PreferencesDialog.java:370 +#: org/openscience/jmol/app/PreferencesDialog.java:377 msgid "Default Bond Radius" msgstr "Sideme raadiuse vaikeväärtus" -#: org/openscience/jmol/app/PreferencesDialog.java:371 -#: org/openscience/jmol/app/PreferencesDialog.java:409 -#: org/openscience/jmol/app/PreferencesDialog.java:460 +#: org/openscience/jmol/app/PreferencesDialog.java:378 +#: org/openscience/jmol/app/PreferencesDialog.java:416 +#: org/openscience/jmol/app/PreferencesDialog.java:467 msgid "(Angstroms)" msgstr "(Angstromid)" -#: org/openscience/jmol/app/PreferencesDialog.java:408 +#: org/openscience/jmol/app/PreferencesDialog.java:415 msgid "Bond Tolerance - sum of two covalent radii + this value" msgstr "Sideme tolerants - kahe kovalentse radii summa + see väärtus" -#: org/openscience/jmol/app/PreferencesDialog.java:459 +#: org/openscience/jmol/app/PreferencesDialog.java:466 msgid "Minimum Bonding Distance" msgstr "Väikseim sideme kaugus" @@ -1069,10 +1079,6 @@ msgid "Halt" msgstr "Seiska" -#: org/openscience/jmol/app/ScriptWindow.java:95 -msgid "Clear" -msgstr "Puhasta" - #: org/openscience/jmol/app/ScriptWindow.java:99 msgid "Help" msgstr "Abi" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/fr.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/fr.po 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/fr.po 2006-09-15 21:18:11 UTC (rev 5553) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: 2006-02-19 17:18+0100\n" "Last-Translator: Nicolas Vervelle <ni...@us...>\n" "Language-Team: French <Jmo...@li...>\n" @@ -49,7 +49,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "OK" @@ -521,17 +521,17 @@ msgstr "Arrêter l'animation" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "Revenir à la première trame" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "Aller à la trame suivante" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "Aller à la trame précédente" @@ -590,39 +590,44 @@ msgstr "Prévisualisation (redémarrage de Jmol nécessaire)" #: org/openscience/jmol/app/GuiMap.java:165 +#, fuzzy +msgid "Clear console button (needs restarting Jmol)" +msgstr "Prévisualisation (redémarrage de Jmol nécessaire)" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "Utiliser la couleur de l'atome" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "Ouvrir un fichier." -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "Exporter la vue dans un fichier image." -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "Rendu dans pov-ray." -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "Imprimer la vue." -#: org/openscience/jmol/app/GuiMap.java:171 +#: org/openscience/jmol/app/GuiMap.java:172 msgid "Rotate molecule." msgstr "Faire tourner la molécule." -#: org/openscience/jmol/app/GuiMap.java:172 +#: org/openscience/jmol/app/GuiMap.java:173 msgid "Select an atom or region." msgstr "Sélectionner un atome ou une région." -#: org/openscience/jmol/app/GuiMap.java:173 +#: org/openscience/jmol/app/GuiMap.java:174 msgid "View measurement table." msgstr "Voir la table des mesures." -#: org/openscience/jmol/app/GuiMap.java:174 +#: org/openscience/jmol/app/GuiMap.java:175 msgid "Return molecule to home position." msgstr "Ramener la molécule à sa position d'origine." @@ -733,31 +738,36 @@ msgid "Jmol Java Console" msgstr "Console Jmol" -#: org/openscience/jmol/app/Jmol.java:480 +#: org/openscience/jmol/app/Jmol.java:476 +#: org/openscience/jmol/app/ScriptWindow.java:95 +msgid "Clear" +msgstr "Effacer" + +#: org/openscience/jmol/app/Jmol.java:489 msgid "Could not create ConsoleTextArea: " msgstr "Impossible de créer la ConsoleTextArea:" -#: org/openscience/jmol/app/Jmol.java:554 +#: org/openscience/jmol/app/Jmol.java:563 msgid "Closing Jmol..." msgstr "Fermeture de Jmol..." -#: org/openscience/jmol/app/Jmol.java:790 +#: org/openscience/jmol/app/Jmol.java:799 msgid "Macros" msgstr "Macros" -#: org/openscience/jmol/app/Jmol.java:1110 +#: org/openscience/jmol/app/Jmol.java:1119 msgid "Open URL" msgstr "Ouvrir une URL" -#: org/openscience/jmol/app/Jmol.java:1111 +#: org/openscience/jmol/app/Jmol.java:1120 msgid "Enter URL of molecular model" msgstr "Saisissez l'URL d'un modèle moléculaire" -#: org/openscience/jmol/app/Jmol.java:1198 +#: org/openscience/jmol/app/Jmol.java:1207 msgid "IO Exception:" msgstr "Exception E/S!" -#: org/openscience/jmol/app/Jmol.java:1370 +#: org/openscience/jmol/app/Jmol.java:1379 msgid "File not loaded" msgstr "Fichier non chargé" @@ -972,7 +982,7 @@ msgstr "Sauver le fichier et lancer povray" #: org/openscience/jmol/app/PovrayDialog.java:492 -#: org/openscience/jmol/app/PreferencesDialog.java:161 +#: org/openscience/jmol/app/PreferencesDialog.java:163 #: org/openscience/jmol/app/RecentFilesDialog.java:69 msgid "Cancel" msgstr "Annuler" @@ -989,73 +999,73 @@ msgid "null component string" msgstr "Chaîne vide" -#: org/openscience/jmol/app/PreferencesDialog.java:129 +#: org/openscience/jmol/app/PreferencesDialog.java:131 msgid "Preferences" msgstr "Préférences" -#: org/openscience/jmol/app/PreferencesDialog.java:146 +#: org/openscience/jmol/app/PreferencesDialog.java:148 msgid "Display" msgstr "Affichage" -#: org/openscience/jmol/app/PreferencesDialog.java:147 +#: org/openscience/jmol/app/PreferencesDialog.java:149 msgid "Atoms" msgstr "Atomes" -#: org/openscience/jmol/app/PreferencesDialog.java:148 +#: org/openscience/jmol/app/PreferencesDialog.java:150 msgid "Bonds" msgstr "Liens" -#: org/openscience/jmol/app/PreferencesDialog.java:153 +#: org/openscience/jmol/app/PreferencesDialog.java:155 msgid "Jmol Defaults" msgstr "Défaut Jmol" -#: org/openscience/jmol/app/PreferencesDialog.java:157 +#: org/openscience/jmol/app/PreferencesDialog.java:159 msgid "RasMol Defaults" msgstr "Défaut RasMol" -#: org/openscience/jmol/app/PreferencesDialog.java:165 +#: org/openscience/jmol/app/PreferencesDialog.java:167 msgid "Apply" msgstr "Appliquer" -#: org/openscience/jmol/app/PreferencesDialog.java:193 +#: org/openscience/jmol/app/PreferencesDialog.java:195 msgid "Show All" msgstr "Tout afficher" -#: org/openscience/jmol/app/PreferencesDialog.java:287 +#: org/openscience/jmol/app/PreferencesDialog.java:294 msgid "Default atom size" msgstr "Taille par défaut des atomes" -#: org/openscience/jmol/app/PreferencesDialog.java:288 +#: org/openscience/jmol/app/PreferencesDialog.java:295 msgid "(percentage of vanDerWaals radius)" msgstr "(pourcentage du rayon de vanDerWaals)" -#: org/openscience/jmol/app/PreferencesDialog.java:340 +#: org/openscience/jmol/app/PreferencesDialog.java:347 msgid "Compute Bonds" msgstr "Calculer les Liens" -#: org/openscience/jmol/app/PreferencesDialog.java:342 +#: org/openscience/jmol/app/PreferencesDialog.java:349 msgid "Automatically" msgstr "Automatiquement" -#: org/openscience/jmol/app/PreferencesDialog.java:343 +#: org/openscience/jmol/app/PreferencesDialog.java:350 msgid "Don't Compute Bonds" msgstr "Ne pas Calculer les Liens" -#: org/openscience/jmol/app/PreferencesDialog.java:370 +#: org/openscience/jmol/app/PreferencesDialog.java:377 msgid "Default Bond Radius" msgstr "Rayon des Liens par Défaut" -#: org/openscience/jmol/app/PreferencesDialog.java:371 -#: org/openscience/jmol/app/PreferencesDialog.java:409 -#: org/openscience/jmol/app/PreferencesDialog.java:460 +#: org/openscience/jmol/app/PreferencesDialog.java:378 +#: org/openscience/jmol/app/PreferencesDialog.java:416 +#: org/openscience/jmol/app/PreferencesDialog.java:467 msgid "(Angstroms)" msgstr "(Angstroms 1E-10)" -#: org/openscience/jmol/app/PreferencesDialog.java:408 +#: org/openscience/jmol/app/PreferencesDialog.java:415 msgid "Bond Tolerance - sum of two covalent radii + this value" msgstr "Tolérance des Liens - somme de deux rayons covalents + cette valeur" -#: org/openscience/jmol/app/PreferencesDialog.java:459 +#: org/openscience/jmol/app/PreferencesDialog.java:466 msgid "Minimum Bonding Distance" msgstr "Distance Minimun pour les Liens" @@ -1075,10 +1085,6 @@ msgid "Halt" msgstr "Arrêter" -#: org/openscience/jmol/app/ScriptWindow.java:95 -msgid "Clear" -msgstr "Effacer" - #: org/openscience/jmol/app/ScriptWindow.java:99 msgid "Help" msgstr "?" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/nl.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/nl.po 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/nl.po 2006-09-15 21:18:11 UTC (rev 5553) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: 2006-04-09 11:48+0100\n" "Last-Translator: Egon Willighagen <eg...@jm...>\n" "Language-Team: Dutch <jmo...@li...>\n" @@ -49,7 +49,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "OK" @@ -521,17 +521,17 @@ msgstr "Stop animatie" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "Spoel terug naar eerste frame" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "Ga naar volgende frame" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "Ga naar vorige frame" @@ -590,39 +590,44 @@ msgstr "Bestands Preview (vereist een herstart van Jmol)" #: org/openscience/jmol/app/GuiMap.java:165 +#, fuzzy +msgid "Clear console button (needs restarting Jmol)" +msgstr "Bestands Preview (vereist een herstart van Jmol)" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "Gebruik atoomkleuren" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "Open een bestand." -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "Exporteer de weergave naar bestand." -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "Render in pov-ray." -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "Printweergave" -#: org/openscience/jmol/app/GuiMap.java:171 +#: org/openscience/jmol/app/GuiMap.java:172 msgid "Rotate molecule." msgstr "Roteer molecuul." -#: org/openscience/jmol/app/GuiMap.java:172 +#: org/openscience/jmol/app/GuiMap.java:173 msgid "Select an atom or region." msgstr "Selecteer een atoom of gebied." -#: org/openscience/jmol/app/GuiMap.java:173 +#: org/openscience/jmol/app/GuiMap.java:174 msgid "View measurement table." msgstr "Laat Metingentabel zien." -#: org/openscience/jmol/app/GuiMap.java:174 +#: org/openscience/jmol/app/GuiMap.java:175 msgid "Return molecule to home position." msgstr "Zet molecule terug in startpositie." @@ -731,31 +736,36 @@ msgid "Jmol Java Console" msgstr "Jmol Console" -#: org/openscience/jmol/app/Jmol.java:480 +#: org/openscience/jmol/app/Jmol.java:476 +#: org/openscience/jmol/app/ScriptWindow.java:95 +msgid "Clear" +msgstr "Wissen" + +#: org/openscience/jmol/app/Jmol.java:489 msgid "Could not create ConsoleTextArea: " msgstr "Kon geen ConsoleTextArea aanmaken:" -#: org/openscience/jmol/app/Jmol.java:554 +#: org/openscience/jmol/app/Jmol.java:563 msgid "Closing Jmol..." msgstr "Bezig met afsluiten Jmol..." -#: org/openscience/jmol/app/Jmol.java:790 +#: org/openscience/jmol/app/Jmol.java:799 msgid "Macros" msgstr "Macro's" -#: org/openscience/jmol/app/Jmol.java:1110 +#: org/openscience/jmol/app/Jmol.java:1119 msgid "Open URL" msgstr "Open URL" -#: org/openscience/jmol/app/Jmol.java:1111 +#: org/openscience/jmol/app/Jmol.java:1120 msgid "Enter URL of molecular model" msgstr "Geef URL van molecuulmodel" -#: org/openscience/jmol/app/Jmol.java:1198 +#: org/openscience/jmol/app/Jmol.java:1207 msgid "IO Exception:" msgstr "IO-fout:" -#: org/openscience/jmol/app/Jmol.java:1370 +#: org/openscience/jmol/app/Jmol.java:1379 msgid "File not loaded" msgstr "Bestand niet geladen" @@ -967,7 +977,7 @@ msgstr "Bewaar bestand en start povray indien nodig" #: org/openscience/jmol/app/PovrayDialog.java:492 -#: org/openscience/jmol/app/PreferencesDialog.java:161 +#: org/openscience/jmol/app/PreferencesDialog.java:163 #: org/openscience/jmol/app/RecentFilesDialog.java:69 msgid "Cancel" msgstr "Afbreken" @@ -984,73 +994,73 @@ msgid "null component string" msgstr "lege-component-tekst" -#: org/openscience/jmol/app/PreferencesDialog.java:129 +#: org/openscience/jmol/app/PreferencesDialog.java:131 msgid "Preferences" msgstr "Eigenschappen" -#: org/openscience/jmol/app/PreferencesDialog.java:146 +#: org/openscience/jmol/app/PreferencesDialog.java:148 msgid "Display" msgstr "Weergave" -#: org/openscience/jmol/app/PreferencesDialog.java:147 +#: org/openscience/jmol/app/PreferencesDialog.java:149 msgid "Atoms" msgstr "Atomen" -#: org/openscience/jmol/app/PreferencesDialog.java:148 +#: org/openscience/jmol/app/PreferencesDialog.java:150 msgid "Bonds" msgstr "Bindingen" -#: org/openscience/jmol/app/PreferencesDialog.java:153 +#: org/openscience/jmol/app/PreferencesDialog.java:155 msgid "Jmol Defaults" msgstr "Standaard Jmol-waarden" -#: org/openscience/jmol/app/PreferencesDialog.java:157 +#: org/openscience/jmol/app/PreferencesDialog.java:159 msgid "RasMol Defaults" msgstr "Rasmol-standaarden" -#: org/openscience/jmol/app/PreferencesDialog.java:165 +#: org/openscience/jmol/app/PreferencesDialog.java:167 msgid "Apply" msgstr "Toepassen" -#: org/openscience/jmol/app/PreferencesDialog.java:193 +#: org/openscience/jmol/app/PreferencesDialog.java:195 msgid "Show All" msgstr "Laat alles zien" -#: org/openscience/jmol/app/PreferencesDialog.java:287 +#: org/openscience/jmol/app/PreferencesDialog.java:294 msgid "Default atom size" msgstr "Standaard atoomgrootte" -#: org/openscience/jmol/app/PreferencesDialog.java:288 +#: org/openscience/jmol/app/PreferencesDialog.java:295 msgid "(percentage of vanDerWaals radius)" msgstr "(percentage van de vanderwaals-straal)" -#: org/openscience/jmol/app/PreferencesDialog.java:340 +#: org/openscience/jmol/app/PreferencesDialog.java:347 msgid "Compute Bonds" msgstr "Bepaal de Bindingen" -#: org/openscience/jmol/app/PreferencesDialog.java:342 +#: org/openscience/jmol/app/PreferencesDialog.java:349 msgid "Automatically" msgstr "Automatisch" -#: org/openscience/jmol/app/PreferencesDialog.java:343 +#: org/openscience/jmol/app/PreferencesDialog.java:350 msgid "Don't Compute Bonds" msgstr "Bepaal geen bindingen" -#: org/openscience/jmol/app/PreferencesDialog.java:370 +#: org/openscience/jmol/app/PreferencesDialog.java:377 msgid "Default Bond Radius" msgstr "Standaard bondstraal" -#: org/openscience/jmol/app/PreferencesDialog.java:371 -#: org/openscience/jmol/app/PreferencesDialog.java:409 -#: org/openscience/jmol/app/PreferencesDialog.java:460 +#: org/openscience/jmol/app/PreferencesDialog.java:378 +#: org/openscience/jmol/app/PreferencesDialog.java:416 +#: org/openscience/jmol/app/PreferencesDialog.java:467 msgid "(Angstroms)" msgstr "(Angstroms)" -#: org/openscience/jmol/app/PreferencesDialog.java:408 +#: org/openscience/jmol/app/PreferencesDialog.java:415 msgid "Bond Tolerance - sum of two covalent radii + this value" msgstr "Bindingstolerantie - som van de twee covalente stralen + deze waarde" -#: org/openscience/jmol/app/PreferencesDialog.java:459 +#: org/openscience/jmol/app/PreferencesDialog.java:466 msgid "Minimum Bonding Distance" msgstr "Minimum bindingsafstand" @@ -1070,10 +1080,6 @@ msgid "Halt" msgstr "Stoppen" -#: org/openscience/jmol/app/ScriptWindow.java:95 -msgid "Clear" -msgstr "Wissen" - #: org/openscience/jmol/app/ScriptWindow.java:99 msgid "Help" msgstr "Help" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/pt.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/pt.po 2006-09-15 18:25:37 UTC (rev 5552) +++ trunk/Jmol/src/org/jmol/translation/Jmol/pt.po 2006-09-15 21:18:11 UTC (rev 5553) @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-12 23:00+0200\n" +"POT-Creation-Date: 2006-09-15 23:16+0200\n" "PO-Revision-Date: 2005-12-20 07:33-0000\n" "Last-Translator: Metro <por...@gm...>\n" "Language-Team: Portugal@Folding <Jmo...@li...>\n" @@ -49,7 +49,7 @@ #: org/openscience/jmol/app/AboutDialog.java:96 #: org/openscience/jmol/app/HelpDialog.java:105 -#: org/openscience/jmol/app/PreferencesDialog.java:169 +#: org/openscience/jmol/app/PreferencesDialog.java:171 #: org/openscience/jmol/app/WhatsNewDialog.java:95 msgid "OK" msgstr "OK" @@ -521,17 +521,17 @@ msgstr "Parar a animação" #: org/openscience/jmol/app/GuiMap.java:145 -#: org/openscience/jmol/app/GuiMap.java:175 +#: org/openscience/jmol/app/GuiMap.java:176 msgid "Rewind to first frame" msgstr "Rebobinar para o primeiro frame" #: org/openscience/jmol/app/GuiMap.java:146 -#: org/openscience/jmol/app/GuiMap.java:176 +#: org/openscience/jmol/app/GuiMap.java:177 msgid "Go to next frame" msgstr "Ir para o próximo frame" #: org/openscience/jmol/app/GuiMap.java:147 -#: org/openscience/jmol/app/GuiMap.java:177 +#: org/openscience/jmol/app/GuiMap.java:178 msgid "Go to previous frame" msgstr "Ir para o frame anterior" @@ -590,39 +590,44 @@ msgstr "Pré-visualização do ficheiro (requer reiniciação do Jmol)" #: org/openscience/jmol/app/GuiMap.java:165 +#, fuzzy +msgid "Clear console button (needs restarting Jmol)" +msgstr "Pré-visualização do ficheiro (requer reiniciação do Jmol)" + #: org/openscience/jmol/app/GuiMap.java:166 +#: org/openscience/jmol/app/GuiMap.java:167 msgid "Use Atom Color" msgstr "Usar cor do átomo" -#: org/openscience/jmol/app/GuiMap.java:167 +#: org/openscience/jmol/app/GuiMap.java:168 msgid "Open a file." msgstr "Abrir ficheiro" -#: org/openscience/jmol/app/GuiMap.java:168 +#: org/openscience/jmol/app/GuiMap.java:169 msgid "Export view to an image file." msgstr "Exportar para um ficheiro de imagem" -#: org/openscience/jmol/app/GuiMap.java:169 +#: org/openscience/jmol/app/GuiMap.java:170 msgid "Render in pov-ray." msgstr "Renderizar em \"pov-ray\"" -#: org/openscience/jmol/app/GuiMap.java:170 +#: org/openscience/jmol/app/GuiMap.java:171 msgid "Print view." msgstr "... [truncated message content] |
From: <ha...@us...> - 2006-09-16 18:09:31
|
Revision: 5567 http://svn.sourceforge.net/jmol/?rev=5567&view=rev Author: hansonr Date: 2006-09-16 11:09:22 -0700 (Sat, 16 Sep 2006) Log Message: ----------- fixes 1282641 stereo + image exporting bug cleans up Viewer.rendering methods Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-16 18:08:56 UTC (rev 5566) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-16 18:09:22 UTC (rev 5567) @@ -1121,7 +1121,7 @@ setFrankOn(styleManager.frankOn); repaintManager.initializePointers(1); setDisplayModelIndex(0); - setBackgroundModelIndex(0); + setBackgroundModelIndex(-1); setTainted(true); popHoldRepaint(); setStatusFileLoaded(3, fullPathName, fileName, modelManager @@ -1797,7 +1797,7 @@ // modified to indicate if there is also a background model index int modelIndex = repaintManager.displayModelIndex; int backgroundIndex = getBackgroundModelIndex(); - return (backgroundIndex > 0 ? -2 - modelIndex : modelIndex); + return (backgroundIndex >= 0 ? -2 - modelIndex : modelIndex); } void setBackgroundModelIndex(int modelIndex) { @@ -1870,63 +1870,26 @@ isTainted = false; if (size != null) setScreenDimension(size); + setRectClip(null); int stereoMode = getStereoMode(); switch (stereoMode) { + case JmolConstants.STEREO_DOUBLE: + render1(g, getImage(true, false), dimScreen.width, 0); case JmolConstants.STEREO_NONE: - setRectClip(clip); - render1(g, transformManager.getStereoRotationMatrix(false), false, 0, 0); + render1(g, getImage(false, false), 0, 0); break; - case JmolConstants.STEREO_DOUBLE: - setRectClip(null); - render1(g, transformManager.getStereoRotationMatrix(false), false, 0, 0); - render1(g, transformManager.getStereoRotationMatrix(true), false, - dimScreen.width, 0); - break; case JmolConstants.STEREO_REDCYAN: case JmolConstants.STEREO_REDBLUE: case JmolConstants.STEREO_REDGREEN: case JmolConstants.STEREO_CUSTOM: - setRectClip(null); - g3d.beginRendering(rectClip.x, rectClip.y, rectClip.width, - rectClip.height, transformManager.getStereoRotationMatrix(true), - false); - repaintManager.render(g3d, rectClip, modelManager.getFrame(), - repaintManager.displayModelIndex); - g3d.endRendering(); - g3d.snapshotAnaglyphChannelBytes(); - g3d.beginRendering(rectClip.x, rectClip.y, rectClip.width, - rectClip.height, transformManager.getStereoRotationMatrix(false), - false); - repaintManager.render(g3d, rectClip, modelManager.getFrame(), - repaintManager.displayModelIndex); - g3d.endRendering(); - switch (stereoMode) { - case JmolConstants.STEREO_REDCYAN: - g3d.applyCyanAnaglyph(); - break; - case JmolConstants.STEREO_CUSTOM: - g3d.applyCustomAnaglyph(transformManager.stereoColors); - break; - case JmolConstants.STEREO_REDBLUE: - g3d.applyBlueAnaglyph(); - break; - default: - g3d.applyGreenAnaglyph(); - } - Image img = g3d.getScreenImage(); - try { - g.drawImage(img, 0, 0, null); - } catch (NullPointerException npe) { - Logger.error("Sun!! ... fix graphics your bugs!"); - } - g3d.releaseScreenImage(); + render1(g, getStereoImage(stereoMode, false), 0, 0); break; } repaintView(); } - - void render1(Graphics g, Matrix3f matrixRotate, boolean antialias, int x, - int y) { + + private Image getImage(boolean isDouble, boolean antialias) { + Matrix3f matrixRotate = transformManager.getStereoRotationMatrix(isDouble); g3d.beginRendering(rectClip.x, rectClip.y, rectClip.width, rectClip.height, matrixRotate, antialias); repaintManager.render(g3d, rectClip, modelManager.getFrame(), @@ -1935,7 +1898,42 @@ // Sun is throwing a NullPointerExceptions inside graphics routines // while the window is resized. g3d.endRendering(); - Image img = g3d.getScreenImage(); + return g3d.getScreenImage(); + } + + private Image getStereoImage(int stereoMode, boolean antialias) { + g3d.beginRendering(rectClip.x, rectClip.y, rectClip.width, + rectClip.height, transformManager.getStereoRotationMatrix(true), + antialias); + repaintManager.render(g3d, rectClip, modelManager.getFrame(), + repaintManager.displayModelIndex); + g3d.endRendering(); + g3d.snapshotAnaglyphChannelBytes(); + g3d.beginRendering(rectClip.x, rectClip.y, rectClip.width, + rectClip.height, transformManager.getStereoRotationMatrix(false), + antialias); + repaintManager.render(g3d, rectClip, modelManager.getFrame(), + repaintManager.displayModelIndex); + g3d.endRendering(); + switch (stereoMode) { + case JmolConstants.STEREO_REDCYAN: + g3d.applyCyanAnaglyph(); + break; + case JmolConstants.STEREO_CUSTOM: + g3d.applyCustomAnaglyph(transformManager.stereoColors); + break; + case JmolConstants.STEREO_REDBLUE: + g3d.applyBlueAnaglyph(); + break; + default: + g3d.applyGreenAnaglyph(); + } + return g3d.getScreenImage(); + } + + private void render1(Graphics g, Image img, int x, int y) { + if (g == null) + return; try { g.drawImage(img, x, y, null); } catch (NullPointerException npe) { @@ -1945,14 +1943,17 @@ } public Image getScreenImage() { - boolean antialiasThisFrame = true; - setRectClip(null); - g3d.beginRendering(rectClip.x, rectClip.y, rectClip.width, rectClip.height, - transformManager.getStereoRotationMatrix(false), antialiasThisFrame); - repaintManager.render(g3d, rectClip, modelManager.getFrame(), - repaintManager.displayModelIndex); - g3d.endRendering(); - return g3d.getScreenImage(); + boolean antialias = true; + setRectClip(null); + int stereoMode = getStereoMode(); + switch (stereoMode) { + case JmolConstants.STEREO_REDCYAN: + case JmolConstants.STEREO_REDBLUE: + case JmolConstants.STEREO_REDGREEN: + case JmolConstants.STEREO_CUSTOM: + return getStereoImage(stereoMode, false); + } + return getImage(false, antialias); } public void releaseScreenImage() { Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-16 18:08:56 UTC (rev 5566) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-16 18:09:22 UTC (rev 5567) @@ -921,7 +921,8 @@ private JMenuBar menubar; private JToolBar toolbar; - + // these correlate with items in GuiMap.java + private static final String newwinAction = "newwin"; private static final String openAction = "open"; private static final String openurlAction = "openurl"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-18 12:44:37
|
Revision: 5591 http://svn.sourceforge.net/jmol/?rev=5591&view=rev Author: hansonr Date: 2006-09-18 05:44:24 -0700 (Mon, 18 Sep 2006) Log Message: ----------- show unitcell + app console bug fix for not resetting isError Modified Paths: -------------- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java trunk/Jmol/src/org/jmol/symmetry/UnitCell.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Frame.java trunk/Jmol/src/org/jmol/viewer/ModelManager.java trunk/Jmol/src/org/jmol/viewer/Token.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -52,7 +52,7 @@ private static final String[][] structureContents = { { "popupMenu", "modelSetInfoMenu - selectMenu renderMenu labelMenu colorMenu - " + "zoomMenu spinMenu animateMenu - " + - "measureMenu pickingMenu crystalMenu optionsMenu - consoleMenu - " + + "measureMenu pickingMenu crystalMenu optionsMenu - showMenu - " + "aboutMenu" }, { "selectMenu", "selectAll selectNone - " + @@ -577,8 +577,10 @@ { "pickSite" , "set picking site" }, { "pickSpin" , "set picking spin" }, - { "showMenu" , "showFile showIsosurface showMeasure showMo showModel " + - "showOrient showPDBHeader showSpacegroup showSymmetry extractMOL" }, + { "showMenu" , "showConsole showFile showFileHeader showIsosurface " + + "showMeasure showMo showModel " + + "showOrient showSpacegroup showSymmetry showUnitcell extractMOL" }, + { "showConsole", "console" }, { "showFile", "show file"}, { "showIsosurface", "show isosurface"}, { "showMeasure", "show measure"}, @@ -588,6 +590,7 @@ { "showPDBHeader", "show PDBHeader"}, { "showSpacegroup", "show spacegroup"}, { "showSymmetry", "show symmetry"}, + { "showUnitcell", "show unitcell"}, { "extractMOL", "getproperty extractModel \"visible\" "}, { "crystalMenu", "axesMenu bbcageMenu uccageMenu" }, @@ -672,10 +675,6 @@ { "rasmolColors", "set color rasmol" }, { "jmolColors", "set color jmol" }, - { "consoleMenu", "consoleOn consoleOff showMenu" }, - { "consoleOn", "console" }, - { "consoleOff", "console off" }, - { "aboutMenu", "jmolUrl mouseManualUrl translatingUrl" }, { "jmolUrl", "http://www.jmol.org" }, { "mouseManualUrl", "http://wiki.jmol.org/index.php/Mouse_Manual" }, @@ -1137,16 +1136,18 @@ { "pickSpin" , GT._("Spin") }, { "showMenu" , GT._( "Show") }, - { "showFile", GT._("file")}, - { "showIsosurface", GT._( "isosurface")}, - { "showMeasure", GT._("measure")}, - { "showMo", GT._("molecular orbital")}, - { "showModel", GT._("model")}, - { "showOrient", GT._("orientation")}, - { "showPDBHeader", GT._("PDBHeader")}, - { "showSpacegroup", GT._("spacegroup")}, - { "showSymmetry", GT._("symmetry")}, - { "extractMOL", GT._("extract MOL data")}, + { "showConsole", GT._("Console") }, + { "showFile", GT._("File Contents")}, + { "showFileHeader", GT._("File Header")}, + { "showIsosurface", GT._("Isosurface JVXL data")}, + { "showMeasure", GT._("Measure")}, + { "showMo", GT._("Molecular orbital JVXL data")}, + { "showModel", GT._("Model")}, + { "showOrient", GT._("Orientation")}, + { "showSpacegroup", GT._("Space group")}, + { "showSymmetry", GT._("Symmetry")}, + { "showUnitcell", GT._("Unit cell")}, + { "extractMOL", GT._("Extract MOL data")}, { "crystalMenu", GT._("Crystal") }, @@ -1230,10 +1231,6 @@ { "axesOrientationRasmolCheckbox", GT._("Axes RasMol/Chime") }, { "zeroBasedXyzRasmolCheckbox", GT._("Zero Based Xyz Rasmol") }, - { "consoleMenu", GT._("Console...") }, - { "consoleOn", GT._("Open") }, - { "consoleOff", GT._("Close") }, - { "aboutMenu", GT._("About Jmol") }, { "jmolUrl", "www.jmol.org" }, { "mouseManualUrl", GT._("Mouse Manual") }, Modified: trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -263,10 +263,8 @@ } else if (n12ths > 6f) { n12ths -= 12f; } - if (n12ths == 0) - return ""; String s = twelfthsOf(n12ths); - return (n12ths > 0 ? "+" + s : s); + return (s.charAt(0) == '0' ? "" : n12ths > 0 ? "+" + s : s); } Point3f atomTest = new Point3f(); Modified: trunk/Jmol/src/org/jmol/symmetry/UnitCell.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/UnitCell.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/symmetry/UnitCell.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -87,10 +87,10 @@ setOffset(cell); } - public final String dumpInfo() { - return "UnitCell a=" + a + ", b=" + b + ", c=" + c + ", alpha=" + alpha + ", beta=" + beta + ", gamma=" + gamma - + "\nUnitCell fractional to cartesian: " + matrixFractionalToCartesian - + "\nUnitCell cartesian to fractional: " + matrixCartesianToFractional; + public final String dumpInfo(boolean isFull) { + return "a=" + a + ", b=" + b + ", c=" + c + ", alpha=" + alpha + ", beta=" + beta + ", gamma=" + gamma + + (isFull ? "\nfractional to cartesian: " + matrixFractionalToCartesian + + "\ncartesian to fractional: " + matrixCartesianToFractional : ""); } public Point3f[] getVertices() { Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -4021,6 +4021,9 @@ showString(data == null ? "no data" : "data \"" + data[0] + "\"\n" + data[1]); return; + case Token.unitcell: + showString(viewer.getUnitCellInfoText()); + return; case Token.spacegroup: if (statementLength == 2) { showString(viewer.getSpaceGroupInfoText(null)); Modified: trunk/Jmol/src/org/jmol/viewer/Frame.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -2635,8 +2635,13 @@ void showInfo() { if (Logger.isActiveLevel(Logger.LEVEL_DEBUG)) - Logger.debug("cellInfos[" + modelIndex + "]:\n" + unitCell.dumpInfo()); + Logger.debug("cellInfos[" + modelIndex + "]:\n" + unitCell.dumpInfo(true)); } + + String getUnitCellInfo() { + return (unitCell == null ? "no unit cell information" : + unitCell.dumpInfo(false)); + } } void convertFractionalCoordinates(int modelIndex, Point3f pt) { Modified: trunk/Jmol/src/org/jmol/viewer/ModelManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -1581,6 +1581,16 @@ return frame.getAdditionalHydrogens(atomSet); } + String getUnitCellInfoText() { + if (frame == null) + return null; + if (frame.currentModelIndex < 0) + return "no single current model"; + if (frame.cellInfos == null) + return "not applicable"; + return frame.cellInfos[frame.currentModelIndex].getUnitCellInfo(); + } + String getSpaceGroupInfoText(String spaceGroup) { if (spaceGroup == null && frame == null) return null; Modified: trunk/Jmol/src/org/jmol/viewer/Token.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Token.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/viewer/Token.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -225,7 +225,7 @@ // stereo // strands final static int transparent = setparam | 19; - final static int unitcell = setparam | 20 | command; + final static int unitcell = setparam | 20 | showparam | command; final static int vectps = setparam | 21; // write Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -1148,6 +1148,10 @@ return modelManager.getModelSetFileName(); } + public String getUnitCellInfoText() { + return modelManager.getUnitCellInfoText(); + } + public String getSpaceGroupInfoText(String spaceGroup) { return modelManager.getSpaceGroupInfoText(spaceGroup); } Modified: trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-18 11:55:23 UTC (rev 5590) +++ trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-18 12:44:24 UTC (rev 5591) @@ -106,6 +106,7 @@ if (strEcho != null && !isError) { console.outputEcho(strEcho); } + setError(false); } boolean isError = false; @@ -120,6 +121,7 @@ } else if (!isError) console.outputStatus(strStatus); + setError(false); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-22 15:05:27
|
Revision: 5653 http://svn.sourceforge.net/jmol/?rev=5653&view=rev Author: hansonr Date: 2006-09-22 08:05:13 -0700 (Fri, 22 Sep 2006) Log Message: ----------- labels, script window, command history, up/down arrow key refinements. --fixes bug in 10.9.62 not allowing setting of label offsets. --added "console on" for popup window -- VERY nice! --command history up/down action now doesn't roll over -- this was too confusing! --command history add now parses command set line by line for single-line retrieval --sending a null message automatically clears the console output Modified Paths: -------------- trunk/Jmol/src/org/jmol/applet/Console.java trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/util/CommandHistory.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Labels.java trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java Modified: trunk/Jmol/src/org/jmol/applet/Console.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -118,8 +118,10 @@ } void output(String message, AttributeSet att) { - if (message.length() == 0) + if (message == null) { + output.setText(""); return; + } if (message.charAt(message.length() - 1) != '\n') message += "\n"; try { @@ -141,7 +143,7 @@ void execute() { String strCommand = input.getText(); - commandHistory.addCommand(strCommand); + addCommand(strCommand); input.setText(null); output(strCommand, attributesCommand); String strErrorMessage = viewer.script(strCommand); @@ -150,6 +152,16 @@ input.requestFocus(); } + void addCommand(String strCommand) { + int i; + while ((i = strCommand.indexOf("\n")) >= 0) { + String str = strCommand.substring(0, i); + if (str.length() > 0) + commandHistory.addCommand(str); + strCommand = strCommand.substring(i + 1); + } + } + class ShiftEnterTextArea extends JTextArea { public void processComponentKeyEvent(KeyEvent ke) { switch (ke.getID()) { @@ -177,7 +189,11 @@ private void recallCommand(boolean up) { - setText(up ? commandHistory.getCommandUp() : commandHistory.getCommandDown()); + String cmd = up ? commandHistory.getCommandUp() : commandHistory + .getCommandDown(); + if (cmd == null) + return; + setText(cmd); } } @@ -211,7 +227,10 @@ private void recallCommand(boolean up) { - setText(up ? commandHistory.getCommandUp() : commandHistory.getCommandDown()); + String str = up ? commandHistory.getCommandUp() : commandHistory.getCommandDown(); + if (str == null) + return; + setText(str); } } Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -558,7 +558,7 @@ { "measureAngle", "set pickingstyle MEASURE; set picking MEASURE ANGLE" }, { "measureTorsion", "set pickingstyle MEASURE; set picking MEASURE TORSION" }, { "measureDelete", "measure delete" }, - { "measureList", "console;show measurements" }, + { "measureList", "console on;show measurements" }, { "distanceNanometers", "select *; set measure nanometers" }, { "distanceAngstroms", "select *; set measure angstroms" }, { "distancePicometers", "select *; set measure picometers" }, @@ -581,17 +581,17 @@ + "showMeasure showMo showModel " + "showOrient showSpacegroup showSymmetry showUnitcell extractMOL" }, { "showConsole", "console" }, - { "showFile", "show file"}, - { "showIsosurface", "show isosurface"}, - { "showMeasure", "show measure"}, - { "showMo", "show mo"}, - { "showModel", "show model"}, - { "showOrient", "show orientation"}, - { "showPDBHeader", "show PDBHeader"}, - { "showSpacegroup", "show spacegroup"}, - { "showSymmetry", "show symmetry"}, - { "showUnitcell", "show unitcell"}, - { "extractMOL", "getproperty extractModel \"visible\" "}, + { "showFile", "console on;show file"}, + { "showFileHeader", "console on;getProperty FileHeader"}, + { "showIsosurface", "console on;show isosurface"}, + { "showMeasure", "console on;show measure"}, + { "showMo", "console on;show mo"}, + { "showModel", "console on;show model"}, + { "showOrient", "console on;show orientation"}, + { "showSpacegroup", "console on;show spacegroup"}, + { "showSymmetry", "console on;show symmetry"}, + { "showUnitcell", "console on;show unitcell"}, + { "extractMOL", "console on;getproperty extractModel \"visible\" "}, { "crystalMenu", "axesMenu bbcageMenu uccageMenu" }, Modified: trunk/Jmol/src/org/jmol/util/CommandHistory.java =================================================================== --- trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -58,13 +58,9 @@ * @return the String value of a command. */ public String getCommandUp() { + if (cursorPos <= 0) + return null; cursorPos--; - if (cursorPos < 0) { - cursorPos = commandList.length - 1; - while ((cursorPos > 0) && (commandList[cursorPos] == null)) { - cursorPos--; - } - } return getCommand(); } @@ -74,13 +70,10 @@ * @return the String value of a command. */ public String getCommandDown() { + if (cursorPos >= nextCommand) + return null; cursorPos++; - if (cursorPos >= commandList.length) { - cursorPos = 0; - } - if (commandList[cursorPos] == null) { - cursorPos = 0; - } + return getCommand(); } @@ -99,6 +92,8 @@ * @param command the String value of a command. */ public void addCommand(String command) { + if(command == null || command.length() == 0) + return; if (nextCommand >= commandList.length) { nextCommand = 0; } Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -1602,8 +1602,18 @@ order)); } - void console() { - viewer.showConsole(statement[1].tok == Token.on); + void console() throws ScriptException { + switch (statement[1].tok) { + case Token.off: + viewer.showConsole(false); + break; + case Token.on: + viewer.showConsole(true); + viewer.clearConsole(); + break; + default: + evalError("console ON|OFF"); + } } void centerAt() throws ScriptException { Modified: trunk/Jmol/src/org/jmol/viewer/Labels.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Labels.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/jmol/viewer/Labels.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -73,10 +73,8 @@ if (colix == Graphics3D.UNRECOGNIZED) palette = (String) value; for (int i = frame.atomCount; --i >= 0;) - if (bsSelected.get(i)) { - n++; - setColix(i, colix, palette); - } + if (bsSelected.get(i)) + setColix(i, colix, palette, n++); if (n == 0 || !defaultsOnlyForNone) { defaultColix = colix; defaultPalette = palette; @@ -87,10 +85,8 @@ short bgcolix = Graphics3D.getColix(value); int n = 0; for (int i = frame.atomCount; --i >= 0;) - if (bsSelected.get(i)) { - n++; - setBgcolix(i, bgcolix); - } + if (bsSelected.get(i)) + setBgcolix(i, bgcolix, n++); if (n == 0 || !defaultsOnlyForNone) defaultBgcolix = bgcolix; } @@ -109,13 +105,13 @@ if (text != null) text.setText(label); if (defaultOffset != zeroOffset) - setOffsets(i, defaultOffset); + setOffsets(i, defaultOffset, -1); if (defaultColix != 0) - setColix(i, defaultColix, defaultPalette); + setColix(i, defaultColix, defaultPalette, -1); if (defaultBgcolix != 0) - setBgcolix(i, defaultBgcolix); + setBgcolix(i, defaultBgcolix, -1); if (defaultFontId != zeroFontId) - setFont(i, defaultFontId); + setFont(i, defaultFontId, -1); } return; } @@ -129,10 +125,8 @@ byte fid = g3d.getFontFid(fontsize); int n = 0; for (int i = frame.atomCount; --i >= 0;) - if (bsSelected.get(i)) { - n++; - setFont(i, fid); - } + if (bsSelected.get(i)) + setFont(i, fid, n++); if (n == 0 || !defaultsOnlyForNone) defaultFontId = fid; return; @@ -142,10 +136,8 @@ byte fid = ((Font3D) value).fid; int n = 0; for (int i = frame.atomCount; --i >= 0;) - if (bsSelected.get(i)) { - n++; - setFont(i, fid); - } + if (bsSelected.get(i)) + setFont(i, fid, n++); if (n == 0 || !defaultsOnlyForNone) defaultFontId = fid; return; @@ -162,12 +154,9 @@ else if (offset == zeroOffset) offset = 0; int n = 0; - for (int i = frame.atomCount; --i >= 0;) { - if (bsSelected.get(i)) { - n++; - setOffsets(i, offset); - } - } + for (int i = frame.atomCount; --i >= 0;) + if (bsSelected.get(i)) + setOffsets(i, offset, n++); if (n == 0 || !defaultsOnlyForNone) defaultOffset = offset; return; @@ -182,10 +171,8 @@ alignment = Text.CENTER; int n = 0; for (int i = frame.atomCount; --i >= 0;) - if (bsSelected.get(i)) { - n++; - setAlignment(i, alignment); - } + if (bsSelected.get(i)) + setAlignment(i, alignment, n++); if (n == 0 || !defaultsOnlyForNone) defaultAlignment = alignment; } @@ -207,7 +194,7 @@ } } - void setColix(int i, short colix, String palette) { + void setColix(int i, short colix, String palette, int n) { if (colixes == null || i >= colixes.length) { if (colix == 0) return; @@ -220,7 +207,7 @@ text.setColix(colixes[i]); } - void setBgcolix(int i, short bgcolix) { + void setBgcolix(int i, short bgcolix, int n) { if (bgcolixes == null || i >= bgcolixes.length) { if (bgcolix == 0) return; @@ -232,8 +219,7 @@ text.setBgColix(bgcolix); } - void setOffsets(int i, int offset) { - setOffsets(i, offset); + void setOffsets(int i, int offset, int n) { if (offsets == null || i >= offsets.length) { if (offset == 0) return; @@ -245,7 +231,7 @@ text.setOffset(offset); } - void setAlignment(int i, int alignment) { + void setAlignment(int i, int alignment, int n) { if (offsets == null || i >= offsets.length) { if (alignment == Text.LEFT) return; @@ -257,7 +243,7 @@ text.setAlignment(alignment); } - void setFont(int i, byte fid) { + void setFont(int i, byte fid, int n) { if (fids == null || i >= fids.length) { if (fid == defaultFontId) return; Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -277,6 +277,11 @@ jmolStatusListener.showUrl(urlString); } + synchronized void clearConsole() { + if (jmolStatusListener != null) + jmolStatusListener.sendConsoleMessage(null); + } + synchronized void showConsole(boolean showConsole) { if (jmolStatusListener != null) jmolStatusListener.showConsole(showConsole); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -2434,6 +2434,10 @@ statusManager.showConsole(showConsole); } + void clearConsole() { + statusManager.clearConsole(); + } + /***************************************************************************** * mth 2003 05 31 - needs more work this should be implemented using * properties or as a hashtable using boxed/wrapped values so that the values Modified: trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-22 05:45:46 UTC (rev 5652) +++ trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-22 15:05:13 UTC (rev 5653) @@ -80,10 +80,6 @@ JPanel buttonPanel = new JPanel(); container.add(buttonPanel, BorderLayout.SOUTH); - closeButton = new JButton(GT._("Close")); - closeButton.addActionListener(this); - buttonPanel.add(closeButton); - runButton = new JButton(GT._("Run")); runButton.addActionListener(this); buttonPanel.add(runButton); @@ -100,8 +96,13 @@ helpButton = new JButton(GT._("Help")); helpButton.addActionListener(this); buttonPanel.add(helpButton); - } + closeButton = new JButton(GT._("Close")); + closeButton.addActionListener(this); + buttonPanel.add(closeButton); + +} + public void sendConsoleEcho(String strEcho) { if (strEcho != null && !isError) { console.outputEcho(strEcho); @@ -114,15 +115,16 @@ isError = TF; } public void sendConsoleMessage(String strStatus) { - if (strStatus != null) { - if (strStatus.indexOf("ERROR:") >= 0) { - console.outputError(strStatus); - setError(true); - } - else if (!isError) - console.outputStatus(strStatus); - setError(false); + if (strStatus == null) { + console.clearContent(); + console.outputStatus(""); + } else if (strStatus.indexOf("ERROR:") >= 0) { + console.outputError(strStatus); + setError(true); + } else if (!isError) { + console.outputStatus(strStatus); } + setError(false); } public void notifyScriptTermination(String strMsg, int msWalltime) { @@ -349,24 +351,21 @@ } /** - * Recall command histoy. - * - * @param up - history up or down - */ - private final void recallCommand(boolean up) - { - String cmd = up?commandHistory.getCommandUp():commandHistory.getCommandDown(); - - try - { - consoleDoc.replaceCommand(cmd); - - } - catch (BadLocationException e) - { - e.printStackTrace(); - } - } + * Recall command histoy. + * + * @param up - history up or down + */ + private final void recallCommand(boolean up) { + String cmd = up ? commandHistory.getCommandUp() : commandHistory + .getCommandDown(); + if (cmd == null) + return; + try { + consoleDoc.replaceCommand(cmd); + } catch (BadLocationException e) { + e.printStackTrace(); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-25 18:54:59
|
Revision: 5717 http://svn.sourceforge.net/jmol/?rev=5717&view=rev Author: hansonr Date: 2006-09-25 11:54:42 -0700 (Mon, 25 Sep 2006) Log Message: ----------- adds command line options -i,--silent silent startup operation -o,--noconsole no console -- all output to sysout -n,--nodisplay no display (much faster) -x,--exit run script and exit and associated adjustments to make these work properly Modified Paths: -------------- trunk/Jmol/src/org/jmol/applet/Console.java trunk/Jmol/src/org/jmol/util/CommandHistory.java trunk/Jmol/src/org/jmol/viewer/ColorManager.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java trunk/Jmol/src/org/jmol/viewer/PropertyManager.java trunk/Jmol/src/org/jmol/viewer/RepaintManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/applet/Console.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -143,7 +143,7 @@ void execute() { String strCommand = input.getText(); - addCommand(strCommand); + commandHistory.addCommand(strCommand); input.setText(null); output(strCommand, attributesCommand); String strErrorMessage = viewer.script(strCommand); @@ -152,16 +152,6 @@ input.requestFocus(); } - void addCommand(String strCommand) { - int i; - while ((i = strCommand.indexOf("\n")) >= 0) { - String str = strCommand.substring(0, i); - if (str.length() > 0) - commandHistory.addCommand(str); - strCommand = strCommand.substring(i + 1); - } - } - class ShiftEnterTextArea extends JTextArea { public void processComponentKeyEvent(KeyEvent ke) { switch (ke.getID()) { Modified: trunk/Jmol/src/org/jmol/util/CommandHistory.java =================================================================== --- trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -89,11 +89,28 @@ } /** - * Adds a new command to the bottom of the list, resets list position. + * Adds any number of lines to the command history + * @param strCommand + */ + public void addCommand(String strCommand) { + int i; + while ((i = strCommand.indexOf("\n")) >= 0) { + String str = strCommand.substring(0, i); + if (str.length() > 0) + addCommandLine(str); + strCommand = strCommand.substring(i + 1); + } + if (strCommand.length() > 0) + addCommandLine(strCommand); + } + + + /** + * Adds a single line to the bottom of the list, resets list position. * * @param command the String value of a command. */ - public void addCommand(String command) { + private void addCommandLine(String command) { if(command == null || command.length() == 0) return; if (nextCommand >= maxSize) { Modified: trunk/Jmol/src/org/jmol/viewer/ColorManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ColorManager.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/viewer/ColorManager.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -44,7 +44,6 @@ } void setDefaultColors(String colorScheme) { - Logger.info("setting color scheme to:" + colorScheme); if (colorScheme.equals("jmol")) { argbsCpk = JmolConstants.argbsCpk; viewer.setColorBackground("black"); Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -1787,7 +1787,7 @@ String property = (statementLength < 2 ? "" : (String) statement[1].value); String param = (statementLength < 3 ? "" : (String) statement[2].value); retValue = (String) viewer.getProperty("readable", property, param); - viewer.scriptEcho(retValue); + showString(retValue); } void background() throws ScriptException { @@ -3588,8 +3588,7 @@ // etc. int ilevel = intParameter(2); - for (int i = Logger.NB_LEVELS; --i >= 0;) - Logger.setActiveLevel(i, (Logger.NB_LEVELS - i) <= ilevel); + Viewer.setLogLevel(ilevel); Logger.info("logging level set to " + ilevel); break; } @@ -4251,8 +4250,8 @@ } void showString(String str) { - Logger.info("show:" + str); - viewer.scriptStatus("" + str); + Logger.warn(str); + viewer.scriptEcho(str); } /* **************************************************************************** Modified: trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -44,7 +44,7 @@ void render(Graphics3D g3d, Rectangle rectClip, Frame frame, int displayModelIndex) { - if (frame == null || frame.atomCount <= 0) + if (frame == null || frame.atomCount <= 0 || !viewer.getDisplayFlag()) return; logTime = viewer.getTestFlag1(); Modified: trunk/Jmol/src/org/jmol/viewer/PropertyManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -156,6 +156,8 @@ return false; } + boolean requestedReadable = false; + synchronized Object getProperty(String returnType, String infoType, String paramInfo) { if (propertyTypes.length != PROP_COUNT * 3) Logger.warn("propertyTypes is not the right length: " + propertyTypes.length + " != " + PROP_COUNT * 3); @@ -163,10 +165,14 @@ Object info = getPropertyAsObject(infoType, paramInfo); if (returnType == null) return info; - if (returnType.equalsIgnoreCase("readable")) + requestedReadable = returnType.equalsIgnoreCase("readable"); + if (requestedReadable) returnType = (isReadableAsString(infoType) ? "String" : "JSON"); if (returnType.equalsIgnoreCase("String")) return info.toString(); - if (returnType.equalsIgnoreCase("JSON"))return "{" + toJSON(infoType, info) + "}"; + if (requestedReadable) + return toReadable(infoType, info); + else if (returnType.equalsIgnoreCase("JSON")) + return "{" + toJSON(infoType, info) + "}"; return info; } @@ -252,6 +258,11 @@ return "\"" + infoType + "\": " + info; } + String packageReadable (String infoType, String info) { + if (infoType == null) return info; + return "\n" + infoType + "\t" + info; + } + String fixString(String s) { if (s == null || s.indexOf("{\"") == 0) //don't doubly fix JSON strings when retrieving status return s; @@ -266,76 +277,78 @@ String str = ""; String sep = ""; - if (info == null || info instanceof String) + if (info == null) + return packageJSON(infoType, null); + if (info instanceof String) return packageJSON(infoType, fixString((String) info)); if (info instanceof String[]) { str = "["; int imax = ((String[]) info).length; for (int i = 0; i < imax; i++) { - str = str + sep + fixString(((String[]) info)[i]); + str += sep + fixString(((String[]) info)[i]); sep = ","; } - str = str + "]"; + str += "]"; return packageJSON(infoType, str); } if (info instanceof int[]) { str = "["; int imax = ((int[]) info).length; for (int i = 0; i < imax; i++) { - str = str + sep + ((int[]) info)[i]; + str += sep + ((int[]) info)[i]; sep = ","; } - str = str + "]"; + str += "]"; return packageJSON(infoType, str); } if (info instanceof float[]) { str = "["; int imax = ((float[]) info).length; for (int i = 0; i < imax; i++) { - str = str + sep + ((float[]) info)[i]; + str += sep + ((float[]) info)[i]; sep = ","; } - str = str + "]"; + str += "]"; return packageJSON(infoType, str); } if (info instanceof float[][]) { str = "["; int imax = ((float[][]) info).length; for (int i = 0; i < imax; i++) { - str = str + sep + toJSON(null, ((float[][]) info)[i]); + str += sep + toJSON(null, ((float[][]) info)[i]); sep = ","; } - str = str + "]"; + str += "]"; return packageJSON(infoType, str); } if (info instanceof Vector) { str = "["; int imax = ((Vector) info).size(); for (int i = 0; i < imax; i++) { - str = str + sep + toJSON(null, ((Vector) info).get(i)); + str += sep + toJSON(null, ((Vector) info).get(i)); sep = ","; } - str = str + "]"; + str += "]"; return packageJSON(infoType, str); } if (info instanceof Matrix3f) { str = "["; - str = str + "[" + ((Matrix3f) info).m00 + "," + ((Matrix3f) info).m01 + str += "[" + ((Matrix3f) info).m00 + "," + ((Matrix3f) info).m01 + "," + ((Matrix3f) info).m02 + "]"; - str = str + ",[" + ((Matrix3f) info).m10 + "," + ((Matrix3f) info).m11 + str += ",[" + ((Matrix3f) info).m10 + "," + ((Matrix3f) info).m11 + "," + ((Matrix3f) info).m12 + "]"; - str = str + ",[" + ((Matrix3f) info).m20 + "," + ((Matrix3f) info).m21 + str += ",[" + ((Matrix3f) info).m20 + "," + ((Matrix3f) info).m21 + "," + ((Matrix3f) info).m22 + "]"; - str = str + "]"; + str += "]"; return packageJSON(infoType, str); } if (info instanceof Point3f) { - str = str + "[" + ((Point3f) info).x + "," + ((Point3f) info).y + "," + str += "[" + ((Point3f) info).x + "," + ((Point3f) info).y + "," + ((Point3f) info).z + "]"; return packageJSON(infoType, str); } if (info instanceof Vector3f) { - str = str + "[" + ((Vector3f) info).x + "," + ((Vector3f) info).y + "," + str += "[" + ((Vector3f) info).x + "," + ((Vector3f) info).y + "," + ((Vector3f) info).z + "]"; return packageJSON(infoType, str); } @@ -344,14 +357,109 @@ Enumeration e = ((Hashtable) info).keys(); while (e.hasMoreElements()) { String key = (String) e.nextElement(); - str = str + sep + str += sep + packageJSON(key, toJSON(null, ((Hashtable) info).get(key))); sep = ","; } - str = str + "}"; + str += "}"; return packageJSON(infoType, str); } return packageJSON(infoType, info.toString()); } + String toReadable(String infoType, Object info) { + + //Logger.debug(infoType+" -- "+info); + + String str = ""; + String sep = ""; + if (info == null) + return "null"; + if (info instanceof String) + return packageReadable(infoType, fixString((String) info)); + if (info instanceof String[]) { + str = "["; + int imax = ((String[]) info).length; + for (int i = 0; i < imax; i++) { + str += sep + fixString(((String[]) info)[i]); + sep = ","; + } + str += "]"; + return packageReadable(infoType, str); + } + if (info instanceof int[]) { + str = "["; + int imax = ((int[]) info).length; + for (int i = 0; i < imax; i++) { + str += sep + ((int[]) info)[i]; + sep = ","; + } + str += "]"; + return packageReadable(infoType, str); + } + if (info instanceof float[]) { + str = ""; + int imax = ((float[]) info).length; + for (int i = 0; i < imax; i++) { + str += sep + ((float[]) info)[i]; + sep = ","; + } + str += ""; + return packageReadable(infoType, str); + } + if (info instanceof float[][]) { + str = "["; + int imax = ((float[][]) info).length; + for (int i = 0; i < imax; i++) { + str += sep + toReadable(null, ((float[][]) info)[i]); + sep = ","; + } + str += "]"; + return packageReadable(infoType, str); + } + if (info instanceof Vector) { + str = ""; + int imax = ((Vector) info).size(); + for (int i = 0; i < imax; i++) { + str += sep + toReadable(null, ((Vector) info).get(i)); + sep = ","; + } + str += "\n"; + return packageReadable(infoType, str); + } + if (info instanceof Matrix3f) { + str = "["; + str += "[" + ((Matrix3f) info).m00 + "," + ((Matrix3f) info).m01 + + "," + ((Matrix3f) info).m02 + "]"; + str += ",[" + ((Matrix3f) info).m10 + "," + ((Matrix3f) info).m11 + + "," + ((Matrix3f) info).m12 + "]"; + str += ",[" + ((Matrix3f) info).m20 + "," + ((Matrix3f) info).m21 + + "," + ((Matrix3f) info).m22 + "]"; + str += "]"; + return packageReadable(infoType, str); + } + if (info instanceof Point3f) { + str += "[" + ((Point3f) info).x + "," + ((Point3f) info).y + "," + + ((Point3f) info).z + "]"; + return packageReadable(infoType, str); + } + if (info instanceof Vector3f) { + str += "[" + ((Vector3f) info).x + "," + ((Vector3f) info).y + "," + + ((Vector3f) info).z + "]"; + return packageReadable(infoType, str); + } + if (info instanceof Hashtable) { + str = ""; + Enumeration e = ((Hashtable) info).keys(); + while (e.hasMoreElements()) { + String key = (String) e.nextElement(); + str += sep + + packageReadable(key, toReadable(null, ((Hashtable) info).get(key))); + sep = ""; + } + str += "\n"; + return packageReadable(infoType, str); + } + return packageReadable(infoType, info.toString()); + } } Modified: trunk/Jmol/src/org/jmol/viewer/RepaintManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/RepaintManager.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/viewer/RepaintManager.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -140,7 +140,7 @@ synchronized void repaintView() { repaintPending = false; - notify(); // to cancel any wait + notify(); // to cancel any wait in requestRepaintAndWait() } final Rectangle rectOversample = new Rectangle(); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -115,14 +115,6 @@ jvm12orGreater = (strJavaVersion.compareTo("1.2") >= 0); jvm14orGreater = (strJavaVersion.compareTo("1.4") >= 0); - Logger.info(JmolConstants.copyright + "\nJmol Version " + getJmolVersion() - + "\njava.vendor:" + strJavaVendor + "\njava.version:" + strJavaVersion - + "\nos.name:" + strOSName + "\n" + htmlName); -/* - Logger.info("jvm11orGreater=" + jvm11orGreater - + "\njvm12orGreater=" + jvm12orGreater + "\njvm14orGreater=" - + jvm14orGreater); -*/ g3d = new Graphics3D(awtComponent); eval = new Eval(this); statusManager = new StatusManager(this); @@ -150,6 +142,53 @@ return new Viewer(awtComponent, modelAdapter); } + boolean isSilent = false; + boolean isApplet = false; + boolean autoExit = false; + boolean haveDisplay = true; + + public void setAppletContext(String htmlName, URL documentBase, URL codeBase, + String appletProxyOrCommandOptions) { + this.htmlName = htmlName; + isApplet = (documentBase != null); + if (!isApplet) { + // not an applet -- used to pass along command line options + if (appletProxyOrCommandOptions.indexOf("-i") >= 0) { + setLogLevel(3); //no info, but warnings and errors + isSilent = true; + } + if (appletProxyOrCommandOptions.indexOf("-x") >= 0) { + autoExit = true; + } + if (appletProxyOrCommandOptions.indexOf("-n") >= 0) { + haveDisplay = false; + } + } + +/* + Logger.info("jvm11orGreater=" + jvm11orGreater + + "\njvm12orGreater=" + jvm12orGreater + "\njvm14orGreater=" + + jvm14orGreater); +*/ + if (!isSilent) { + Logger.info(JmolConstants.copyright + "\nJmol Version " + getJmolVersion() + + "\njava.vendor:" + strJavaVendor + "\njava.version:" + strJavaVersion + + "\nos.name:" + strOSName + "\n" + htmlName); + } + + if (isApplet) + fileManager.setAppletContext(documentBase, codeBase, appletProxyOrCommandOptions); + } + + boolean getDisplayFlag() { + return haveDisplay; + } + + static void setLogLevel(int ilevel) { + for (int i = Logger.NB_LEVELS; --i >= 0;) + Logger.setActiveLevel(i, (Logger.NB_LEVELS - i) <= ilevel); + } + public Component getAwtComponent() { return awtComponent; } @@ -707,6 +746,8 @@ // /////////////////////////////////////////////////////////////// void setDefaultColors(String colorScheme) { + if (!isSilent) + Logger.info("setting color scheme to:" + colorScheme); colorManager.setDefaultColors(colorScheme); } @@ -955,12 +996,6 @@ // delegated to FileManager // /////////////////////////////////////////////////////////////// - public void setAppletContext(String htmlName, URL documentBase, URL codeBase, - String appletProxy) { - this.htmlName = htmlName; - fileManager.setAppletContext(documentBase, codeBase, appletProxy); - } - void setAppletProxy(String appletProxy) { fileManager.setAppletProxy(appletProxy); } @@ -2021,6 +2056,7 @@ // /////////////////////////////////////////////////////////////// public String evalFile(String strFilename) { + // from app only return scriptManager.addScript(strFilename, true, false); } @@ -2094,7 +2130,6 @@ return "script execution halted"; if (strScript == null) return null; - //typically request: "+scriptStarted,+scriptStatus,+scriptEcho,+scriptTerminated" //set up first with applet.jmolGetProperty("jmolStatus",statusList) @@ -2111,6 +2146,10 @@ String strErrorMessage = eval.getErrorMessage(); int msWalltime = eval.getExecutionWalltime(); statusManager.setStatusScriptTermination(strErrorMessage, msWalltime); + if (isScriptFile && autoExit) { + System.out.flush(); + System.exit(0); + } } if (returnType.equalsIgnoreCase("String")) return eval.getErrorMessage(); Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-25 05:09:49 UTC (rev 5716) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-25 18:54:42 UTC (rev 5717) @@ -135,8 +135,13 @@ "Jmol's persistent values"); } + static Boolean isSilent = Boolean.FALSE; + static Boolean haveConsole = Boolean.TRUE; + static Boolean haveDisplay = Boolean.TRUE; + + Jmol(Splash splash, JFrame frame, Jmol parent, - int startupWidth, int startupHeight) { + int startupWidth, int startupHeight, String commandOptions) { super(true); this.frame = frame; this.startupWidth = startupWidth; @@ -161,19 +166,21 @@ if (adapter == null || adapter.length() == 0) adapter = "smarter"; if (adapter.equals("smarter")) { - System.out.println("using Smarter Model Adapter"); + report("using Smarter Model Adapter"); modelAdapter = new SmarterJmolAdapter(null); } else if (adapter.equals("cdk")) { - System.out.println("the CDK Model Adapter is currently no longer supported. Check out http://bioclipse.net/. -- using Smarter"); + report("the CDK Model Adapter is currently no longer supported. Check out http://bioclipse.net/. -- using Smarter"); // modelAdapter = new CdkJmolAdapter(null); modelAdapter = new SmarterJmolAdapter(null); } else { - System.out.println("unrecognized model adapter:" + adapter + + report("unrecognized model adapter:" + adapter + " -- using Smarter"); modelAdapter = new SmarterJmolAdapter(null); } viewer = JmolViewer.allocateViewer(display, modelAdapter); + viewer.setAppletContext("", null, null, commandOptions); + display.setViewer(viewer); say(GT._("Initializing Preferences...")); @@ -189,6 +196,8 @@ myStatusListener = new MyStatusListener(); viewer.setJmolStatusListener(myStatusListener); + + say(GT._("Initializing Measurements...")); measurementTable = new MeasurementTable(viewer, frame); @@ -288,7 +297,8 @@ frame.setIconImage(iconImage); // Repositionning windows - historyFile.repositionWindow(SCRIPT_WINDOW_NAME, scriptWindow); + if (haveDisplay.booleanValue()) + historyFile.repositionWindow(SCRIPT_WINDOW_NAME, scriptWindow); say(GT._("Setting up Drag-and-Drop...")); FileDropper dropper = new FileDropper (); @@ -319,29 +329,41 @@ say(GT._("Launching main frame...")); } - public static Jmol getJmol(JFrame frame, - int startupWidth, int startupHeight) { - ImageIcon splash_image = JmolResourceHandler.getIconX("splash"); - System.out.println("splash_image=" + splash_image); - Splash splash = new Splash(frame, splash_image); - splash.setCursor(new Cursor(Cursor.WAIT_CURSOR)); - splash.showStatus(GT._("Creating main window...")); - splash.showStatus(GT._("Initializing Swing...")); + static void report(String str) { + if (isSilent.booleanValue()) + return; + System.out.println(str); + } + + public static Jmol getJmol(JFrame frame, int startupWidth, int startupHeight, + String commandOptions) { + + Splash splash = null; + if (haveDisplay.booleanValue()) { + ImageIcon splash_image = JmolResourceHandler.getIconX("splash"); + report("splash_image=" + splash_image); + splash = new Splash(frame, splash_image); + splash.setCursor(new Cursor(Cursor.WAIT_CURSOR)); + splash.showStatus(GT._("Creating main window...")); + splash.showStatus(GT._("Initializing Swing...")); + } try { - UIManager - .setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); + UIManager + .setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); } catch (Exception exc) { - System.err.println("Error loading L&F: " + exc); + System.err.println("Error loading L&F: " + exc); } - + screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - - splash.showStatus(GT._("Initializing Jmol...")); - + + if (splash != null) + splash.showStatus(GT._("Initializing Jmol...")); + // cache the current directory to speed up Jmol window creation currentDir = getUserDirectory(); - - Jmol window = new Jmol(splash, frame, null, startupWidth, startupHeight); + + Jmol window = new Jmol(splash, frame, null, startupWidth, startupHeight, + commandOptions); frame.show(); return window; } @@ -355,9 +377,12 @@ Options options = new Options(); options.addOption("h", "help", false, GT._("give this help page")); + options.addOption("n", "nodisplay", false, GT._("no display")); + options.addOption("i", "silent", false, GT._("silent startup operation")); + options.addOption("o", "noconsole", false, GT._("no console -- all output to sysout")); OptionBuilder.withLongOpt("script"); - OptionBuilder.withDescription("script to run"); + OptionBuilder.withDescription("script file to execute"); OptionBuilder.withValueSeparator('='); OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("s")); @@ -374,6 +399,14 @@ OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("g")); + OptionBuilder.withLongOpt("exit"); + OptionBuilder.withDescription(GT._("run script and exit")); + OptionBuilder.withValueSeparator('='); + OptionBuilder.hasArg(); + options.addOption(OptionBuilder.create("x")); + + int startupWidth = 0, startupHeight = 0; + CommandLine line = null; try { CommandLineParser parser = new PosixParser(); @@ -399,6 +432,42 @@ System.exit(0); } + args = line.getArgs(); + if (args.length > 0) { + modelFilename = args[0]; + } + + // Process more command line arguments + // these are also passed to viewer + + String commandOptions = ""; + + if (line.hasOption("i")) { + commandOptions += "-i"; + isSilent = Boolean.TRUE; + } + + if (line.hasOption("o")) { + commandOptions += "-o"; + haveConsole = Boolean.FALSE; + } + + if (line.hasOption("n")) { + haveDisplay = Boolean.FALSE; + startupWidth = 200; + startupHeight = 200; + commandOptions += "-n"; + } + + //modelFilename = "caffeine.xyz"; //Eclipse TESTING ONLY + if (line.hasOption("s")) { + commandOptions += "-s"; + scriptFilename = line.getOptionValue("s"); + } else if (line.hasOption("x")) { + commandOptions += "-x"; + scriptFilename = line.getOptionValue("x"); + } + try { String vers = System.getProperty("java.version"); if (vers.compareTo("1.1.2") < 0) { @@ -406,13 +475,13 @@ + "1.1.2 or higher version VM!!!"); } - int startupWidth = 0, startupHeight = 0; Dimension size = historyFile.getWindowSize(JMOL_WINDOW_NAME); - if (size != null) { + if (size != null && haveDisplay.booleanValue()) { startupWidth = size.width; startupHeight = size.height; } - if (line.hasOption("g")) { + + if (line.hasOption("g") && haveDisplay.booleanValue()) { String geometry = line.getOptionValue("g"); int indexX = geometry.indexOf('x'); if (indexX > 0) { @@ -430,18 +499,11 @@ if (jmolPosition != null) { jmolFrame.setLocation(jmolPosition); } - jmol = getJmol(jmolFrame, startupWidth, startupHeight); - // Process command line arguments - args = line.getArgs(); - if (args.length > 0) { - modelFilename = args[0]; - } - //modelFilename = "caffeine.xyz"; //Eclipse TESTING ONLY - if (line.hasOption("s")) { - scriptFilename = line.getOptionValue("s"); - } + //now pass these to viewer + jmol = getJmol(jmolFrame, startupWidth, startupHeight, commandOptions); + // Open a file if one is given as an argument if (modelFilename != null) { @@ -451,9 +513,9 @@ // Oke, by now it is time to execute the script if (scriptFilename != null) { - System.out.println("Executing script: " + scriptFilename); - jmol.splash - .showStatus(GT._("Executing script...")); + report("Executing script: " + scriptFilename); + if (haveDisplay.booleanValue()) + jmol.splash.showStatus(GT._("Executing script...")); jmol.viewer.evalFile(scriptFilename); } } catch (Throwable t) { @@ -461,50 +523,51 @@ t.printStackTrace(); } - Point location = jmol.frame.getLocation(); - Dimension size = jmol.frame.getSize(); - - // Adding console frame to grab System.out & System.err - consoleframe = new JFrame(GT._("Jmol Java Console")); - consoleframe.setIconImage(jmol.frame.getIconImage()); - try { - final ConsoleTextArea consoleTextArea = new ConsoleTextArea(); - consoleTextArea.setFont(java.awt.Font.decode("monospaced")); - consoleframe.getContentPane().add(new JScrollPane(consoleTextArea), - java.awt.BorderLayout.CENTER); - if (Boolean.getBoolean("clearConsoleButton")) { - JButton buttonClear = new JButton(GT._("Clear")); - buttonClear.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - consoleTextArea.setText(""); - } - }); - consoleframe.getContentPane().add(buttonClear, java.awt.BorderLayout.SOUTH); + if (haveConsole.booleanValue()) { + Point location = jmol.frame.getLocation(); + Dimension size = jmol.frame.getSize(); + // Adding console frame to grab System.out & System.err + consoleframe = new JFrame(GT._("Jmol Java Console")); + consoleframe.setIconImage(jmol.frame.getIconImage()); + try { + final ConsoleTextArea consoleTextArea = new ConsoleTextArea(); + consoleTextArea.setFont(java.awt.Font.decode("monospaced")); + consoleframe.getContentPane().add(new JScrollPane(consoleTextArea), + java.awt.BorderLayout.CENTER); + if (Boolean.getBoolean("clearConsoleButton")) { + JButton buttonClear = new JButton(GT._("Clear")); + buttonClear.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + consoleTextArea.setText(""); + } + }); + consoleframe.getContentPane().add(buttonClear, java.awt.BorderLayout.SOUTH); + } + } catch (IOException e) { + JTextArea errorTextArea = new JTextArea(); + errorTextArea.setFont(java.awt.Font.decode("monospaced")); + consoleframe.getContentPane().add(new JScrollPane(errorTextArea), + java.awt.BorderLayout.CENTER); + errorTextArea.append(GT._("Could not create ConsoleTextArea: ") + e); } - } catch (IOException e) { - JTextArea errorTextArea = new JTextArea(); - errorTextArea.setFont(java.awt.Font.decode("monospaced")); - consoleframe.getContentPane().add(new JScrollPane(errorTextArea), - java.awt.BorderLayout.CENTER); - errorTextArea.append(GT._("Could not create ConsoleTextArea: ") + e); + + Dimension consoleSize = historyFile.getWindowSize(CONSOLE_WINDOW_NAME); + Point consolePosition = historyFile.getWindowPosition(CONSOLE_WINDOW_NAME); + if ((consoleSize != null) && (consolePosition != null)) { + consoleframe.setBounds( + consolePosition.x, consolePosition.y, + consoleSize.width, consoleSize.height); + } else { + consoleframe.setBounds( + location.x, location.y + size.height, + size.width, 200); + } + + Boolean consoleVisible = historyFile.getWindowVisibility(CONSOLE_WINDOW_NAME); + if ((consoleVisible != null) && (consoleVisible.equals(Boolean.TRUE))) { + consoleframe.show(); + } } - - Dimension consoleSize = historyFile.getWindowSize(CONSOLE_WINDOW_NAME); - Point consolePosition = historyFile.getWindowPosition(CONSOLE_WINDOW_NAME); - if ((consoleSize != null) && (consolePosition != null)) { - consoleframe.setBounds( - consolePosition.x, consolePosition.y, - consoleSize.width, consoleSize.height); - } else { - consoleframe.setBounds( - location.x, location.y + size.height, - size.width, 200); - } - - Boolean consoleVisible = historyFile.getWindowVisibility(CONSOLE_WINDOW_NAME); - if ((consoleVisible != null) && (consoleVisible.equals(Boolean.TRUE))) { - consoleframe.show(); - } } static int parseInt(String str) { @@ -516,8 +579,9 @@ } private void say(String message) { + if (haveDisplay.booleanValue()) if (splash == null) { - System.out.println(message); + report(message); } else { splash.showStatus(message); } @@ -553,14 +617,14 @@ // Save window positions and status in the history if (historyFile != null) { historyFile.addWindowInfo(JMOL_WINDOW_NAME, this.frame); - historyFile.addWindowInfo(CONSOLE_WINDOW_NAME, consoleframe); + //historyFile.addWindowInfo(CONSOLE_WINDOW_NAME, consoleframe); historyFile.addWindowInfo(SCRIPT_WINDOW_NAME, scriptWindow); } // Close Jmol numWindows--; if (numWindows <= 1) { - System.out.println(GT._("Closing Jmol...")); + report(GT._("Closing Jmol...")); // pluginManager.closePlugins(); System.exit(0); } else { @@ -801,9 +865,9 @@ System.getProperty("user.home") + System.getProperty("file.separator") + ".jmol" + System.getProperty("file.separator") + "macros" ); - System.out.println("User macros dir: " + macroDir); - System.out.println(" exists: " + macroDir.exists()); - System.out.println(" isDirectory: " + macroDir.isDirectory()); + report("User macros dir: " + macroDir); + report(" exists: " + macroDir.exists()); + report(" isDirectory: " + macroDir.isDirectory()); if (macroDir.exists() && macroDir.isDirectory()) { File[] macros = macroDir.listFiles(); for (int i=0; i<macros.length; i++) { @@ -987,7 +1051,8 @@ } public void actionPerformed(ActionEvent e) { - consoleframe.show(); + if (consoleframe != null) + consoleframe.show(); } } @@ -1018,18 +1083,17 @@ } class NewwinAction extends AbstractAction { - - NewwinAction() { - super(newwinAction); - } - - public void actionPerformed(ActionEvent e) { - JFrame newFrame = new JFrame(); - new Jmol(null, newFrame, Jmol.this, - startupWidth, startupHeight); - newFrame.show(); - } - + + NewwinAction() { + super(newwinAction); + } + + public void actionPerformed(ActionEvent e) { + JFrame newFrame = new JFrame(); + new Jmol(null, newFrame, Jmol.this, startupWidth, startupHeight, ""); + newFrame.show(); + } + } class UguideAction extends AbstractAction { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-25 19:47:45
|
Revision: 5719 http://svn.sourceforge.net/jmol/?rev=5719&view=rev Author: hansonr Date: 2006-09-25 12:47:37 -0700 (Mon, 25 Sep 2006) Log Message: ----------- file opening error fix Modified Paths: -------------- trunk/Jmol/src/org/jmol/applet/Jmol.java trunk/Jmol/src/org/jmol/viewer/Compiler.java trunk/Jmol/src/org/openscience/jmol/app/FilePreview.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-09-25 19:44:18 UTC (rev 5718) +++ trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-09-25 19:47:37 UTC (rev 5719) @@ -318,7 +318,7 @@ loadInline(loadParam, (scriptParam.length() > 0 ? scriptParam : null)); else { if ((loadParam = getValue("load", null)) != null) - scriptParam = "load " + loadParam + ";" + scriptParam; + scriptParam = "load \"" + loadParam + "\";" + scriptParam; if (scriptParam.length() > 0) scriptProcessor(scriptParam, null, SCRIPT_NOWAIT); } Modified: trunk/Jmol/src/org/jmol/viewer/Compiler.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-09-25 19:44:18 UTC (rev 5718) +++ trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-09-25 19:47:37 UTC (rev 5719) @@ -149,7 +149,9 @@ } if (tokCommand != Token.nada) { if (lookingAtString()) { - String str = getUnescapedStringLiteral(); + String str = (tokCommand == Token.load && !iHaveQuotedString ? script + .substring(ichToken + 1, ichToken + cchToken - 1) + : getUnescapedStringLiteral()); ltoken.addElement(new Token(Token.string, str)); iHaveQuotedString = true; if (tokCommand == Token.data) Modified: trunk/Jmol/src/org/openscience/jmol/app/FilePreview.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/FilePreview.java 2006-09-25 19:44:18 UTC (rev 5718) +++ trunk/Jmol/src/org/openscience/jmol/app/FilePreview.java 2006-09-25 19:47:37 UTC (rev 5719) @@ -107,7 +107,7 @@ */ void updatePreview(File file) { if (file != null) { - display.getViewer().evalStringQuiet("load " + file.getAbsolutePath()); + display.getViewer().evalStringQuiet("load \"" + file.getAbsolutePath() + "\""); display.repaint(); } else { display.getViewer().evalStringQuiet("zap"); Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-25 19:44:18 UTC (rev 5718) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-25 19:47:37 UTC (rev 5719) @@ -387,12 +387,6 @@ OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("s")); - OptionBuilder.withArgName(GT._("property=value")); - OptionBuilder.hasArg(); - OptionBuilder.withValueSeparator(); - OptionBuilder.withDescription(GT._("supported options are given below")); - options.addOption(OptionBuilder.create("D")); - OptionBuilder.withLongOpt("geometry"); OptionBuilder.withDescription(GT._("window size 500x500")); OptionBuilder.withValueSeparator(); @@ -418,17 +412,6 @@ if (line.hasOption("h")) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("Jmol", options); - - // now report on the -D options - System.out.println(); - System.out.println(GT._("The -D options are as follows (defaults in parathesis):")); - System.out.println(" cdk.debugging=[true|false] (false)"); - System.out.println(" cdk.debug.stdout=[true|false] (false)"); - System.out.println(" display.speed=[fps|ms] (ms)"); - System.out.println(" JmolConsole=[true|false] (true)"); - System.out.println(" plugin.dir (unset)"); - System.out.println(" user.language=[DE|EN|ES|FR|NL|PL] (EN)"); - System.exit(0); } @@ -1165,7 +1148,7 @@ int retval = openChooser.showOpenDialog(Jmol.this); if (retval == 0) { File file = openChooser.getSelectedFile(); - viewer.evalStringQuiet("load " + file.getAbsolutePath()); + viewer.evalStringQuiet("load \"" + file.getAbsolutePath() +"\""); return; } historyFile.addWindowInfo( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-25 21:27:58
|
Revision: 5721 http://svn.sourceforge.net/jmol/?rev=5721&view=rev Author: hansonr Date: 2006-09-25 14:27:42 -0700 (Mon, 25 Sep 2006) Log Message: ----------- NOTE: New method in JmolStatusListener: public void addCommand(String addCommand); drives the commandHistory not from the prompt but from Eval itself. So now the history includes commands generated by scripts and buttons as well as those typed. Modified Paths: -------------- trunk/Jmol/src/org/jmol/api/JmolStatusListener.java trunk/Jmol/src/org/jmol/applet/Console.java trunk/Jmol/src/org/jmol/applet/Jmol.java trunk/Jmol/src/org/jmol/applet/Jvm12.java trunk/Jmol/src/org/jmol/util/CommandHistory.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/JmolConstants.java trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java Modified: trunk/Jmol/src/org/jmol/api/JmolStatusListener.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolStatusListener.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/api/JmolStatusListener.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -67,4 +67,6 @@ public float functionXY(String functionName, int x, int y); public void setCallbackFunction(String callbackType, String callbackFunction); + + public void addCommand(String command); } Modified: trunk/Jmol/src/org/jmol/applet/Console.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -39,15 +39,16 @@ final Document outputDocument = output.getDocument(); final JFrame jf = new JFrame(GT._("Jmol Script Console")); - final JButton runButton = new JButton("Execute"); - final JButton clearButton = new JButton("Clear"); + final JButton runButton = new JButton(GT._("Execute")); + final JButton clearButton = new JButton(GT._("Clear")); + final JButton historyButton = new JButton(GT._("History")); final SimpleAttributeSet attributesCommand = new SimpleAttributeSet(); final JmolViewer viewer; final Jvm12 jvm12; - protected CommandHistory commandHistory = new CommandHistory(20); + protected CommandHistory commandHistory = new CommandHistory(); Console(Component componentParent, JmolViewer viewer, Jvm12 jvm12) { this.viewer = viewer; @@ -80,9 +81,11 @@ c1.add(runButton, BorderLayout.WEST); c1.add(label, BorderLayout.CENTER); c1.add(clearButton, BorderLayout.EAST); + c1.add(historyButton, BorderLayout.SOUTH); c.add(c1, BorderLayout.SOUTH); runButton.addActionListener(this); clearButton.addActionListener(this); + historyButton.addActionListener(this); jf.setSize(400, 400); jf.addWindowListener(this); @@ -105,8 +108,12 @@ // output.setLineWrap(true); // output.setWrapStyleWord(true); StyleConstants.setBold(attributesCommand, true); -} + } + void addCommand(String command) { + commandHistory.addCommand(command); + } + void setVisible(boolean visible) { Logger.debug("Console.setVisible(" + visible + ")"); jf.setVisible(visible); @@ -139,11 +146,13 @@ if (source == clearButton) { output.setText(""); } + if (source == historyButton) { + output.setText(commandHistory.getHistoryText()); + } } void execute() { String strCommand = input.getText(); - commandHistory.addCommand(strCommand); input.setText(null); output(strCommand, attributesCommand); String strErrorMessage = viewer.script(strCommand); Modified: trunk/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -705,6 +705,11 @@ class MyStatusListener implements JmolStatusListener { + public void addCommand(String command) { + if (jvm12 != null) + jvm12.addCommand(command); + } + public void notifyFileLoaded(String fullPathName, String fileName, String modelName, Object clientFile, String errorMsg) { Modified: trunk/Jmol/src/org/jmol/applet/Jvm12.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jvm12.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/applet/Jvm12.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -65,4 +65,8 @@ if (console != null) console.output(message); } + + void addCommand(String command) { + console.addCommand(command); + } } Modified: trunk/Jmol/src/org/jmol/util/CommandHistory.java =================================================================== --- trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -29,6 +29,9 @@ */ final public class CommandHistory { + + final static int DEFAULT_MAX_SIZE = 100; + /** * Array of commands. */ @@ -45,12 +48,21 @@ */ private int cursorPos; + /** + * Creates a new instance using the default size (100) + * + */ + public CommandHistory() { + reset(DEFAULT_MAX_SIZE); + } + + /** * Creates a new instance. * * @param maxSize maximum size for the command queue */ - public CommandHistory(int maxSize) { + public CommandHistory(int maxSize) { reset(maxSize); } @@ -104,6 +116,12 @@ addCommandLine(strCommand); } + public String getHistoryText() { + String str = ""; + for (int i = 0; i < nextCommand; i++) + str += commandList.get(i) + "\n"; + return str; + } /** * Adds a single line to the bottom of the list, resets list position. Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -364,6 +364,7 @@ viewer.scriptStatus(toString()); } while (!interruptExecution.booleanValue() && pc < aatoken.length) { + viewer.addCommand(getLine()); statement = aatoken[pc++]; statementLength = statement.length; if (logMessages) Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -42,7 +42,7 @@ // for now, just update this by hand // perhaps use ant filter later ... but mth doesn't like it :-( public final static String copyright = "(C) 2006 Jmol Development"; - public final static String version = "10.9.65"; + public final static String version = "10.9.66"; public final static String cvsDate = "$Date$"; public final static String date = cvsDate.substring(7, 23); Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -341,5 +341,12 @@ return (jmolStatusListener == null ? 0 : jmolStatusListener.functionXY(functionName, x, y)); } + + void addCommand(String command) { + if (jmolStatusListener == null) + return; + jmolStatusListener.addCommand(command); + } + } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -3536,4 +3536,9 @@ global.helpPath = styleManager.getDefaultHelpPath(); showUrl(global.helpPath + what); } + + void addCommand(String command) { + statusManager.addCommand(command); + } + } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -1431,6 +1431,11 @@ class MyStatusListener implements JmolStatusListener { + public void addCommand(String command) { + if (scriptWindow != null) + scriptWindow.addCommand(command); + } + public void setCallbackFunction(String callbackType, String callbackFunction) { // applet only? } Modified: trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-25 20:12:58 UTC (rev 5720) +++ trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-25 21:27:42 UTC (rev 5721) @@ -57,6 +57,7 @@ private JButton runButton; private JButton haltButton; private JButton clearButton; + private JButton historyButton; private JButton helpButton; JmolViewer viewer; @@ -93,6 +94,10 @@ clearButton.addActionListener(this); buttonPanel.add(clearButton); + historyButton = new JButton(GT._("History")); + historyButton.addActionListener(this); + buttonPanel.add(historyButton); + helpButton = new JButton(GT._("Help")); helpButton.addActionListener(this); buttonPanel.add(helpButton); @@ -166,6 +171,10 @@ } } + void addCommand(String command) { + console.commandHistory.addCommand(command); + } + void executeCommand(String strCommand) { boolean doWait; setError(false); @@ -226,6 +235,8 @@ executeCommandAsThread(); } else if (source == clearButton) { console.clearContent(); + } else if (source == historyButton) { + console.getHistory(); } else if (source == haltButton) { viewer.haltScriptExecution(); } else if (source == helpButton) { @@ -240,7 +251,7 @@ class ConsoleTextPane extends JTextPane { - private CommandHistory commandHistory = new CommandHistory(20); + CommandHistory commandHistory = new CommandHistory(); ConsoleDocument consoleDoc; EnterListener enterListener; @@ -254,7 +265,6 @@ public String getCommandString() { String cmd = consoleDoc.getCommandString(); - commandHistory.addCommand(cmd); return cmd; } @@ -289,10 +299,16 @@ public void clearContent() { consoleDoc.clearContent(); + setPrompt(); + } + public void getHistory() { + consoleDoc.clearContent(); + consoleDoc.outputEcho(commandHistory.getHistoryText()); + setPrompt(); + } - /* (non-Javadoc) * @see java.awt.Component#processKeyEvent(java.awt.event.KeyEvent) */ @@ -417,7 +433,6 @@ } catch (BadLocationException exception) { System.out.println("Could not clear script window content: " + exception.getMessage()); } - setPrompt(); } void setPrompt() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-26 03:50:46
|
Revision: 5725 http://svn.sourceforge.net/jmol/?rev=5725&view=rev Author: hansonr Date: 2006-09-25 20:50:28 -0700 (Mon, 25 Sep 2006) Log Message: ----------- NOTE: I removed the JmolStatusListener API in favor of a JmolViewer api method. I moved the commandHistory to Viewer so that it could be accesses better by Compiler/Eval, which is now used exclusively to add commands to it. history ON/OFF set history n show history n definitely working; may need refinement ultimately. Modified Paths: -------------- trunk/Jmol/src/org/jmol/api/JmolStatusListener.java trunk/Jmol/src/org/jmol/api/JmolViewer.java trunk/Jmol/src/org/jmol/applet/Console.java trunk/Jmol/src/org/jmol/applet/Jvm12.java trunk/Jmol/src/org/jmol/util/CommandHistory.java trunk/Jmol/src/org/jmol/viewer/Compiler.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Token.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java Modified: trunk/Jmol/src/org/jmol/api/JmolStatusListener.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolStatusListener.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/api/JmolStatusListener.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -68,5 +68,4 @@ public void setCallbackFunction(String callbackType, String callbackFunction); - public void addCommand(String command); } Modified: trunk/Jmol/src/org/jmol/api/JmolViewer.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolViewer.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/api/JmolViewer.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -239,6 +239,10 @@ abstract public Object getProperty(String returnType, String infoType, String paramInfo); + abstract public String getSetHistory(int howFarBack); + + // not really implemented: + abstract public void setSyncDriver(int syncMode); abstract public int getSyncMode(); Modified: trunk/Jmol/src/org/jmol/applet/Console.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/applet/Console.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -30,7 +30,6 @@ import javax.swing.*; import javax.swing.text.*; -import org.jmol.util.CommandHistory; import org.jmol.util.Logger; class Console implements ActionListener, WindowListener { @@ -48,8 +47,6 @@ final JmolViewer viewer; final Jvm12 jvm12; - protected CommandHistory commandHistory = new CommandHistory(); - Console(Component componentParent, JmolViewer viewer, Jvm12 jvm12) { this.viewer = viewer; this.jvm12 = jvm12; @@ -66,15 +63,16 @@ jscrollOutput.setMinimumSize(new Dimension(2, 100)); Container c = jf.getContentPane(); - JSplitPane jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, - jscrollOutput, jscrollInput); + JSplitPane jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jscrollOutput, + jscrollInput); jsp.setResizeWeight(.9); jsp.setDividerLocation(200); c.setLayout(new BorderLayout()); c.add(jsp, BorderLayout.CENTER); - - JLabel label = new JLabel(GT._("press CTRL-ENTER for new line"), SwingConstants.CENTER); + + JLabel label = new JLabel(GT._("press CTRL-ENTER for new line"), + SwingConstants.CENTER); label.setHorizontalAlignment(SwingConstants.CENTER); Container c1 = new Container(); c1.setLayout(new BorderLayout()); @@ -99,7 +97,7 @@ // KeyStroke shiftCR = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, // InputEvent.SHIFT_MASK); KeyStroke shiftA = KeyStroke.getKeyStroke(KeyEvent.VK_A, - InputEvent.SHIFT_MASK); + InputEvent.SHIFT_MASK); map.removeKeyStrokeBinding(shiftA); } @@ -110,10 +108,6 @@ StyleConstants.setBold(attributesCommand, true); } - void addCommand(String command) { - commandHistory.addCommand(command); - } - void setVisible(boolean visible) { Logger.debug("Console.setVisible(" + visible + ")"); jf.setVisible(visible); @@ -125,7 +119,7 @@ } void output(String message, AttributeSet att) { - if (message == null) { + if (message == null || message.length() == 0) { output.setText(""); return; } @@ -147,7 +141,7 @@ output.setText(""); } if (source == historyButton) { - output.setText(commandHistory.getHistoryText()); + output.setText(viewer.getSetHistory(Integer.MAX_VALUE)); } } @@ -161,42 +155,6 @@ input.requestFocus(); } - class ShiftEnterTextArea extends JTextArea { - public void processComponentKeyEvent(KeyEvent ke) { - switch (ke.getID()) { - case KeyEvent.KEY_PRESSED: - if (ke.getKeyCode() == KeyEvent.VK_ENTER && ke.isShiftDown()) { - execute(); - return; - } - if (ke.getKeyCode() == KeyEvent.VK_UP) { - recallCommand(true); - return; - } - if (ke.getKeyCode() == KeyEvent.VK_DOWN) { - recallCommand(false); - return; - } - break; - case KeyEvent.KEY_RELEASED: - if (ke.getKeyCode() == KeyEvent.VK_ENTER && ke.isShiftDown()) - return; - break; - } - super.processComponentKeyEvent(ke); - } - - - private void recallCommand(boolean up) { - String cmd = up ? commandHistory.getCommandUp() : commandHistory - .getCommandDown(); - if (cmd == null) - return; - setText(cmd); - } - } - - class ControlEnterTextArea extends JTextArea { public void processComponentKeyEvent(KeyEvent ke) { switch (ke.getID()) { @@ -224,19 +182,18 @@ super.processComponentKeyEvent(ke); } - private void recallCommand(boolean up) { - String str = up ? commandHistory.getCommandUp() : commandHistory.getCommandDown(); - if (str == null) + String cmd = viewer.getSetHistory(up ? -1 : 1); + if (cmd == null) return; - setText(str); + setText(cmd); } } //////////////////////////////////////////////////////////////// // window listener stuff to close when the window closes //////////////////////////////////////////////////////////////// - + public void windowActivated(WindowEvent we) { } Modified: trunk/Jmol/src/org/jmol/applet/Jvm12.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jvm12.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/applet/Jvm12.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -64,10 +64,5 @@ void consoleMessage(String message) { if (console != null) console.output(message); - } - - void addCommand(String command) { - if (console != null) - console.addCommand(command); - } + } } Modified: trunk/Jmol/src/org/jmol/util/CommandHistory.java =================================================================== --- trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -30,13 +30,14 @@ final public class CommandHistory { + public final static String ERROR_FLAG = "#??"; final static int DEFAULT_MAX_SIZE = 100; /** * Array of commands. */ private Vector commandList = null; - private int maxSize; + private int maxSize = DEFAULT_MAX_SIZE; /** * Position of the next command. @@ -62,11 +63,52 @@ * * @param maxSize maximum size for the command queue */ - public CommandHistory(int maxSize) { + public CommandHistory(int maxSize) { reset(maxSize); } /** + * clears the history. + * + */ + public void clear() { + reset(maxSize); + } + + /** + * Resets instance. + * + * @param maxSize maximum size for the command queue. + */ + public void reset(int maxSize) { + this.maxSize = maxSize; + commandList = new Vector(); + nextCommand = 0; + commandList.add(""); + cursorPos = 0; + } + + /** + * Resets maximum size of command queue. Cuts off extra commands. + * + * @param maxSize maximum size for the command queue. + */ + public void setMaxSize(int maxSize) { + if (maxSize == this.maxSize) + return; + if (maxSize < 2) + maxSize = 2; + while (nextCommand >= maxSize) { + commandList.remove(0); + nextCommand--; + } + if (nextCommand >= maxSize) + nextCommand= maxSize - 1; + cursorPos = nextCommand; + this.maxSize = maxSize; + } + + /** * Retrieves the following command from the bottom of the list, updates list position. * * @return the String value of a command. @@ -75,7 +117,12 @@ if (cursorPos <= 0) return null; cursorPos--; - return getCommand(); + String str = getCommand(); + if (str.endsWith(ERROR_FLAG)) + removeCommand(cursorPos--); + if (cursorPos < 0) + cursorPos = 0; + return str; } /** @@ -105,7 +152,10 @@ * @param strCommand */ public void addCommand(String strCommand) { + if (!isOn && !strCommand.endsWith(ERROR_FLAG)) + return; int i; + // I don't think Jmol can deliver a multiline parameter here while ((i = strCommand.indexOf("\n")) >= 0) { String str = strCommand.substring(0, i); if (str.length() > 0) @@ -115,14 +165,61 @@ if (strCommand.length() > 0) addCommandLine(strCommand); } - - public String getHistoryText() { + + boolean isOn = true; + + /** + * Options include: + * all Integer.MAX_VALUE + * n prev n >= 1 + * next -1 + * set max to -2 - n n <= -3 + * just clear -2 + * clear and turn off; return "" 0 + * clear and turn on; return "" Integer.MIN_VALUE; + * @param n + * @return one or more lines of command history + */ + public String getSetHistory(int n) { + isOn = (n == -2 ? isOn : true); + switch (n) { + case 0: + isOn = false; + //fall through + case Integer.MIN_VALUE: + case -2: + clear(); + return ""; + case -1: + return getCommandUp(); + case 1: + return getCommandDown(); + default: + if (n < 0) { + setMaxSize(-2 - n); + return ""; + } + n = Math.max(nextCommand - n, 0); + } String str = ""; - for (int i = 0; i < nextCommand; i++) + for (int i = n; i < nextCommand; i++) str += commandList.get(i) + "\n"; return str; } + public String removeCommand() { + return removeCommand(nextCommand - 1); + } + + public String removeCommand(int n) { + if (n < 0 || n >= nextCommand) + return ""; + String str = (String) commandList.get(n); + commandList.remove(n); + nextCommand--; + return str; + } + /** * Adds a single line to the bottom of the list, resets list position. * @@ -139,34 +236,8 @@ nextCommand++; cursorPos = nextCommand; commandList.add(nextCommand, ""); + //for (int i = 0; i < nextCommand; i++) + //System.out.println("HISTORY:" + i+" "+commandList.get(i)); } - - /** - * Resets maximum size of command queue. Cuts off extra commands. - * - * @param maxSize maximum size for the command queue. - */ - void setMaxSize(int maxSize) { - if (maxSize == this.maxSize) - return; - while (this.maxSize > maxSize) { - commandList.remove(0); - this.maxSize--; - nextCommand = cursorPos = this.maxSize; - } - this.maxSize = maxSize; - } - - /** - * Resets instance. - * - * @param maxSize maximum size for the command queue. - */ - void reset(int maxSize) { - this.maxSize = maxSize; - commandList = new Vector(); - nextCommand = 0; - commandList.add(""); - cursorPos = 0; - } + } Modified: trunk/Jmol/src/org/jmol/viewer/Compiler.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -24,6 +24,7 @@ package org.jmol.viewer; import org.jmol.util.Logger; +import org.jmol.util.CommandHistory; import org.jmol.g3d.Graphics3D; import java.util.Vector; @@ -31,6 +32,7 @@ class Compiler { + Viewer viewer; String filename; String script; @@ -49,6 +51,10 @@ if (logMessages) Logger.debug(message); } + + Compiler(Viewer viewer) { + this.viewer = viewer; + } boolean compile(String filename, String script, boolean isPredefining) { this.filename = filename; @@ -86,6 +92,7 @@ if (filename != null) strError += filename; strError += " line#" + lineCurrent; + viewer.addCommand(errorLine + CommandHistory.ERROR_FLAG); return strError; } Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -27,6 +27,7 @@ import org.jmol.g3d.Font3D; import org.jmol.smiles.InvalidSmilesException; +import org.jmol.util.CommandHistory; import java.io.*; import java.util.BitSet; @@ -71,7 +72,7 @@ boolean logMessages = false; Eval(Viewer viewer) { - compiler = new Compiler(); + compiler = new Compiler(viewer); this.viewer = viewer; clearDefinitionsAndLoadPredefined(); } @@ -364,12 +365,14 @@ viewer.scriptStatus(toString()); } while (!interruptExecution.booleanValue() && pc < aatoken.length) { + Token token = aatoken[pc][0]; + if (token.tok == Token.load) + viewer.getSetHistory(-2); //just clear + statement = aatoken[pc++]; viewer.addCommand(getLine()); - statement = aatoken[pc++]; statementLength = statement.length; if (logMessages) logDebugScript(); - Token token = statement[0]; Logger.debug(token.toString()); switch (token.tok) { case Token.backbone: @@ -426,6 +429,9 @@ case Token.script: script(); break; + case Token.history: + history(1); + break; case Token.select: select(); break; @@ -2583,6 +2589,35 @@ popContext(); } + void history(int pt) throws ScriptException { + if (statementLength == 1) { + // history (clear and turn on) + viewer.getSetHistory(Integer.MIN_VALUE); + return; + } + if (pt == 2) { + // set history n; n' = -2 - n; if n=0, then set history OFF + checkLength3(); + int n = intParameter(2); + if(n < 0) + invalidArgument(); + viewer.getSetHistory(n == 0 ? 0 : -2 - n); + return; + } + switch (statement[1].tok) { + // pt = 1 history ON/OFF/CLEAR + case Token.on: + case Token.clear: + viewer.getSetHistory(Integer.MIN_VALUE); + return; + case Token.off: + viewer.getSetHistory(0); + break; + default: + keywordExpected(); + } + } + void select() throws ScriptException { // NOTE this is called by restrict() viewer.select(statementLength == 1 ? null : expression(statement, 1)); @@ -3459,6 +3494,9 @@ case Token.hetero: setHetero(); break; + case Token.history: + history(2); + break; case Token.hydrogen: setHydrogen(); break; @@ -4123,8 +4161,8 @@ case Token.data: String type = (statementLength == 3 ? stringParameter(2) : null); String[] data = (type == null ? dataLabelString : viewer.getData(type)); - showString(data == null ? "no data" - : "data \"" + data[0] + "\"\n" + data[1]); + showString(data == null ? "no data" : "data \"" + data[0] + "\"\n" + + data[1]); return; case Token.unitcell: showString(viewer.getUnitCellInfoText()); @@ -4170,6 +4208,13 @@ return; } invalidArgument(); + case Token.history: + int n = (statementLength == 2 ? Integer.MAX_VALUE : intParameter(2)); + if (n < 1) + invalidArgument(); + viewer.removeCommand(); + showString(viewer.getSetHistory(n)); + return; case Token.isosurface: showString((String) viewer.getShapeProperty( JmolConstants.SHAPE_ISOSURFACE, "jvxlFileData")); @@ -4179,7 +4224,8 @@ viewer.loadShape(JmolConstants.SHAPE_MO); int modelIndex = viewer.getDisplayModelIndex(); if (modelIndex < 0) - evalError(GT._("MO isosurfaces require that only one model be displayed")); + evalError(GT + ._("MO isosurfaces require that only one model be displayed")); Hashtable moData = (Hashtable) viewer.getModelAuxiliaryInfo(modelIndex, "moData"); if (moData == null) @@ -4231,11 +4277,14 @@ case Token.group: case Token.sequence: case Token.residue: - evalError(GT._("unrecognized SHOW parameter -- use \"getProperty CHAININFO \"")); + evalError(GT + ._("unrecognized SHOW parameter -- use \"getProperty CHAININFO \"")); case Token.selected: - evalError(GT._("unrecognized SHOW parameter -- use \"getProperty ATOMINFO (selected)\"")); + evalError(GT + ._("unrecognized SHOW parameter -- use \"getProperty ATOMINFO (selected)\"")); case Token.atom: - evalError(GT._("unrecognized SHOW parameter -- use \"getProperty ATOMINFO (atom expression)\"")); + evalError(GT + ._("unrecognized SHOW parameter -- use \"getProperty ATOMINFO (atom expression)\"")); case Token.spin: case Token.list: case Token.mlp: @@ -5212,6 +5261,8 @@ ////// script exceptions /////// void evalError(String message) throws ScriptException { + String s = viewer.removeCommand(); + viewer.addCommand(s + CommandHistory.ERROR_FLAG); throw new ScriptException(message, getLine(), filename, getLinenumber()); } Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -340,13 +340,6 @@ float functionXY(String functionName, int x, int y) { return (jmolStatusListener == null ? 0 : jmolStatusListener.functionXY(functionName, x, y)); - } - - void addCommand(String command) { - if (jmolStatusListener == null) - return; - jmolStatusListener.addCommand(command); - } - + } } Modified: trunk/Jmol/src/org/jmol/viewer/Token.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Token.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/viewer/Token.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -190,6 +190,7 @@ final static int calculate = command | 103; final static int restore = command | 104; final static int selectionHalo = command | 105 | setparam; + final static int history = command | 106 | setparam | showparam; // parameters final static int ambient = setparam | 0; @@ -570,6 +571,7 @@ "calculate", new Token(calculate,varArgCount, "calculate"), "selectionhalo", new Token(selectionHalo, onDefault1, "selectionHalos"), "selectionhalos", null, + "history", new Token(history, onDefault1, "history"), // setparams "ambient", new Token(ambient, "ambient"), Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -27,6 +27,7 @@ import org.jmol.api.*; import org.jmol.g3d.*; +import org.jmol.util.CommandHistory; import java.awt.Graphics; import java.awt.Image; @@ -101,7 +102,8 @@ boolean jvm11orGreater = false; boolean jvm12orGreater = false; boolean jvm14orGreater = false; - + public CommandHistory commandHistory = new CommandHistory(); + Viewer(Component awtComponent, JmolAdapter modelAdapter) { this.awtComponent = awtComponent; this.modelAdapter = modelAdapter; @@ -3537,8 +3539,51 @@ showUrl(global.helpPath + what); } + // /////////////////////////////////////////////////////////////// + // delegated to StyleManager + // /////////////////////////////////////////////////////////////// + + /* + * Moved from the consoles to viewer, since this could be of general + * interest, it's more a property of Eval/Viewer, and the consoles + * are really just a mechanism for getting user input and sending + * results, not saving a history of it all. Ultimately I hope to integrate + * the mouse picking and possibly periodic updates of position + * into this history to get a full history. We'll see! BH 9/2006 + * + */ + + + /** + * Adds one or more commands to the command history + * @param command the command to add + */ void addCommand(String command) { - statusManager.addCommand(command); + commandHistory.addCommand(command); } + /** + * Removes one command from the command history + * @return command removed + */ + String removeCommand() { + return commandHistory.removeCommand(); + } + + /** + * Options include: + * ; all n == Integer.MAX_VALUE + * ; n prev n >= 1 + * ; next n == -1 + * ; set max to -2 - n n <= -3 + * ; just clear n == -2 + * ; clear and turn off; return "" n == 0 + * ; clear and turn on; return "" n == Integer.MIN_VALUE; + * + * @param howFarBack number of lines (-1 for next line) + * @return one or more lines of command history + */ + public String getSetHistory(int howFarBack) { + return commandHistory.getSetHistory(howFarBack); + } } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -1431,11 +1431,6 @@ class MyStatusListener implements JmolStatusListener { - public void addCommand(String command) { - if (scriptWindow != null) - scriptWindow.addCommand(command); - } - public void setCallbackFunction(String callbackType, String callbackFunction) { // applet only? } @@ -1445,7 +1440,7 @@ String errorMsg) { if (errorMsg != null) { JOptionPane.showMessageDialog(null, - fullPathName + '\n' + errorMsg, + fullPathName + "\n\n" + errorMsg + "\n\n" , GT._("File not loaded"), JOptionPane.ERROR_MESSAGE); return; Modified: trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-25 21:47:20 UTC (rev 5724) +++ trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-09-26 03:50:28 UTC (rev 5725) @@ -46,12 +46,12 @@ import java.util.Vector; import org.jmol.i18n.GT; +import org.jmol.util.Logger; import org.jmol.util.CommandHistory; -import org.jmol.util.Logger; public final class ScriptWindow extends JDialog implements ActionListener, EnterListener{ - + private ConsoleTextPane console; private JButton closeButton; private JButton runButton; @@ -106,7 +106,7 @@ closeButton.addActionListener(this); buttonPanel.add(closeButton); -} + } public void sendConsoleEcho(String strEcho) { if (strEcho != null && !isError) { @@ -118,7 +118,10 @@ boolean isError = false; void setError(boolean TF) { isError = TF; + if (isError) + console.recallCommand(true); } + public void sendConsoleMessage(String strStatus) { if (strStatus == null) { console.clearContent(); @@ -171,10 +174,6 @@ } } - void addCommand(String command) { - console.commandHistory.addCommand(command); - } - void executeCommand(String strCommand) { boolean doWait; setError(false); @@ -236,7 +235,7 @@ } else if (source == clearButton) { console.clearContent(); } else if (source == historyButton) { - console.getHistory(); + console.clearContent(viewer.getSetHistory(Integer.MAX_VALUE)); } else if (source == haltButton) { viewer.haltScriptExecution(); } else if (source == helpButton) { @@ -251,16 +250,16 @@ class ConsoleTextPane extends JTextPane { - CommandHistory commandHistory = new CommandHistory(); - ConsoleDocument consoleDoc; EnterListener enterListener; - - ConsoleTextPane(EnterListener enterListener) { + JmolViewer viewer; + + ConsoleTextPane(ScriptWindow scriptWindow) { super(new ConsoleDocument()); consoleDoc = (ConsoleDocument)getDocument(); consoleDoc.setConsoleTextPane(this); - this.enterListener = enterListener; + this.enterListener = (EnterListener) scriptWindow; + this.viewer = scriptWindow.viewer; } public String getCommandString() { @@ -298,14 +297,12 @@ } public void clearContent() { - consoleDoc.clearContent(); - setPrompt(); - + clearContent(null); } - - public void getHistory() { + public void clearContent(String text) { consoleDoc.clearContent(); - consoleDoc.outputEcho(commandHistory.getHistoryText()); + if (text != null) + consoleDoc.outputEcho(text); setPrompt(); } @@ -367,22 +364,25 @@ } /** - * Recall command histoy. + * Recall command history. * * @param up - history up or down */ - private final void recallCommand(boolean up) { - String cmd = up ? commandHistory.getCommandUp() : commandHistory - .getCommandDown(); + void recallCommand(boolean up) { + String cmd = viewer.getSetHistory(up ? -1 : 1); if (cmd == null) return; try { - consoleDoc.replaceCommand(cmd); + if (cmd.endsWith(CommandHistory.ERROR_FLAG)) { + cmd = cmd.substring(0, cmd.indexOf(CommandHistory.ERROR_FLAG)); + consoleDoc.replaceCommand(cmd, true); + } else { + consoleDoc.replaceCommand(cmd, false); + } } catch (BadLocationException e) { e.printStackTrace(); } - } - + } } class ConsoleDocument extends DefaultStyledDocument { @@ -516,7 +516,7 @@ if (offs < offsetAfterPrompt) { offs = getLength(); } - super.insertString(offs, str, attUserInput); + super.insertString(offs, str, a == attError ? a : attUserInput); consoleTextPane.setCaretPosition(offs+str.length()); } if (ichNewline >= 0) { @@ -559,7 +559,7 @@ offs = offsetAfterPrompt; } } - super.replace(offs, length, str, attUserInput); + super.replace(offs, length, str, attrs); // consoleTextPane.setCaretPosition(offs + str.length()); } @@ -567,14 +567,15 @@ * Replaces current command on script. * * @param newCommand new command value + * @param isError true to set error color ends with #?? * * @throws BadLocationException */ - void replaceCommand(String newCommand) throws BadLocationException { + void replaceCommand(String newCommand, boolean isError) throws BadLocationException { if (positionAfterPrompt == positionBeforePrompt) return; replace(offsetAfterPrompt, getLength() - offsetAfterPrompt, newCommand, - attUserInput); + isError ? attError : attUserInput); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-26 23:13:06
|
Revision: 5739 http://svn.sourceforge.net/jmol/?rev=5739&view=rev Author: hansonr Date: 2006-09-26 16:12:54 -0700 (Tue, 26 Sep 2006) Log Message: ----------- Preliminary work for command line option -w jpg:filename and script command write JPG "filename" (which do work) Modified Paths: -------------- trunk/Jmol/src/org/jmol/api/JmolStatusListener.java trunk/Jmol/src/org/jmol/applet/Jmol.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/api/JmolStatusListener.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolStatusListener.java 2006-09-26 20:19:05 UTC (rev 5738) +++ trunk/Jmol/src/org/jmol/api/JmolStatusListener.java 2006-09-26 23:12:54 UTC (rev 5739) @@ -68,4 +68,6 @@ public void setCallbackFunction(String callbackType, String callbackFunction); + public void createImage(String file, String type, int quality); + } Modified: trunk/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-09-26 20:19:05 UTC (rev 5738) +++ trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-09-26 23:12:54 UTC (rev 5739) @@ -705,6 +705,10 @@ class MyStatusListener implements JmolStatusListener { + public void createImage(String file, String type, int quality) { + // application-only + } + public void notifyFileLoaded(String fullPathName, String fileName, String modelName, Object clientFile, String errorMsg) { Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-26 20:19:05 UTC (rev 5738) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-26 23:12:54 UTC (rev 5739) @@ -621,6 +621,10 @@ case Token.restore: restore(); break; + case Token.write: + write(); + break; + // not implemented case Token.structure: case Token.bond: @@ -630,7 +634,6 @@ case Token.print: case Token.renumber: case Token.unbond: - case Token.write: // chime extended commands case Token.view: case Token.list: @@ -4217,6 +4220,23 @@ evalError(GT._("restore what? bonds? orientation? selection?")); } + void write() throws ScriptException { + if (viewer.isApplet()) + evalError("The WRITE command is not available for the applet."); + int tok = (statementLength == 1 ? 0 : statement[1].tok); + if (statementLength == 1 || tok == Token.clipboard) { + viewer.createImage(null, "CLIP", 100); + return; + } + checkLength3(); + String type = (tok == Token.identifier ? (String) statement[1].value + : stringParameter(1)); + if (";JPEG;JPG;PDF;PNG;".indexOf((";"+type+";").toUpperCase()) < 0) + evalError("write what? CLIPBOARD or JPG|PNG|PPM \"filename\""); + String fileName = (statement[2].tok == Token.identifier ? (String) statement[2].value + : stringParameter(2)); + viewer.createImage(fileName, type, 100); + } /* **************************************************************************** * ============================================================== Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-26 20:19:05 UTC (rev 5738) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-09-26 23:12:54 UTC (rev 5739) @@ -340,6 +340,13 @@ float functionXY(String functionName, int x, int y) { return (jmolStatusListener == null ? 0 : jmolStatusListener.functionXY(functionName, x, y)); - } + } + + public void createImage(String file, String type, int quality) { + if (jmolStatusListener == null) + return; + jmolStatusListener.createImage(file, type, quality); + } + } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-26 20:19:05 UTC (rev 5738) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-26 23:12:54 UTC (rev 5739) @@ -147,24 +147,32 @@ boolean isSilent = false; boolean isApplet = false; boolean autoExit = false; + String writeInfo; boolean haveDisplay = true; public void setAppletContext(String htmlName, URL documentBase, URL codeBase, String appletProxyOrCommandOptions) { this.htmlName = htmlName; isApplet = (documentBase != null); + String str = appletProxyOrCommandOptions; if (!isApplet) { // not an applet -- used to pass along command line options - if (appletProxyOrCommandOptions.indexOf("-i") >= 0) { + if (str.indexOf("-i") >= 0) { setLogLevel(3); //no info, but warnings and errors isSilent = true; } - if (appletProxyOrCommandOptions.indexOf("-x") >= 0) { + if (str.indexOf("-x") >= 0) { autoExit = true; } - if (appletProxyOrCommandOptions.indexOf("-n") >= 0) { + if (str.indexOf("-n") >= 0) { haveDisplay = false; } + writeInfo = null; + if (str.indexOf("-w") >= 0) { + int i = str.indexOf("\1"); + int j = str.lastIndexOf("\1"); + writeInfo = str.substring(i + 1,j); + } } /* @@ -2148,9 +2156,13 @@ String strErrorMessage = eval.getErrorMessage(); int msWalltime = eval.getExecutionWalltime(); statusManager.setStatusScriptTermination(strErrorMessage, msWalltime); - if (isScriptFile && autoExit) { - System.out.flush(); - System.exit(0); + if (isScriptFile) { + if (writeInfo != null) + createImage(writeInfo); + if (autoExit) { + System.out.flush(); + System.exit(0); + } } } if (returnType.equalsIgnoreCase("String")) @@ -3585,5 +3597,24 @@ */ public String getSetHistory(int howFarBack) { return commandHistory.getSetHistory(howFarBack); - } + } + + void createImage(String type_name) { + if (type_name == null) + return; + if (type_name.length() == 0) + type_name = "JPG:jmol.jpg"; + int i = type_name.indexOf(":"); + if (i < 0) { + i = type_name.length(); + type_name += ":jmol.jpg"; + } + String type = type_name.substring(0, i); + String file = type_name.substring(i + 1); + createImage(file, type, 100); + } + + public void createImage(String file, String type, int quality) { + statusManager.createImage(file, type, quality); + } } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-26 20:19:05 UTC (rev 5738) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-26 23:12:54 UTC (rev 5739) @@ -399,6 +399,12 @@ OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("g")); + OptionBuilder.withLongOpt("write"); + OptionBuilder.withDescription(GT._(" JPG|PNG|PPM:filename")); + OptionBuilder.withValueSeparator(); + OptionBuilder.hasArg(); + options.addOption(OptionBuilder.create("w")); + OptionBuilder.withLongOpt("exit"); OptionBuilder.withDescription(GT._("run script and exit")); OptionBuilder.withValueSeparator('='); @@ -468,6 +474,11 @@ scriptFilename = line.getOptionValue("x"); } + if (line.hasOption("w")) { + String type_name = line.getOptionValue("w"); + commandOptions += "-w\1" + type_name + "\1"; + } + try { String vers = System.getProperty("java.version"); if (vers.compareTo("1.1.2") < 0) { @@ -1118,7 +1129,8 @@ } public void actionPerformed(ActionEvent e) { - ImageSelection.setClipboard(viewer.getScreenImage()); + ImageCreator c = new ImageCreator(viewer, status); + c.clipImage(); } } @@ -1242,44 +1254,15 @@ int retval = exportChooser.showSaveDialog(Jmol.this); if (retval == 0) { File file = exportChooser.getSelectedFile(); - - System.out.println("file chosen=" + file); if (file != null) { - try { - Image eImage = viewer.getScreenImage(); - FileOutputStream os = new FileOutputStream(file); - - if (it.getType().equals("JPEG")) { - int quality = it.getQuality(); - JpegEncoder jc = new JpegEncoder(eImage, quality, os); - jc.Compress(); - } else if (it.getType().equals("PPM")) { - PpmEncoder pc = new PpmEncoder(eImage, os); - pc.encode(); - } else if (it.getType().equals("PNG")) { - PngEncoder png = new PngEncoder(eImage); - byte[] pngbytes = png.pngEncode(); - os.write(pngbytes); - } else { - - // Do nothing - } - - os.flush(); - os.close(); - - } catch (IOException exc) { - status.setStatus(1, GT._("IO Exception:")); - status.setStatus(2, exc.toString()); - System.out.println(exc.toString()); - } - viewer.releaseScreenImage(); - return; + ImageCreator c = new ImageCreator(viewer, status); + c.createImage(file.getAbsolutePath(), it.getType(), it.getQuality()); } } } } + class RecentFilesAction extends AbstractAction { public RecentFilesAction() { @@ -1431,6 +1414,12 @@ class MyStatusListener implements JmolStatusListener { + + public void createImage(String file, String type, int quality) { + ImageCreator c = new ImageCreator(viewer, status); + c.createImage(file, type, quality); + } + public void setCallbackFunction(String callbackType, String callbackFunction) { // applet only? } @@ -1538,3 +1527,54 @@ } } + +class ImageCreator { + + JmolViewer viewer; + StatusBar status; + + ImageCreator(JmolViewer viewer, StatusBar status) { + this.viewer = viewer; + this.status = status; + } + + void clipImage() { + Image eImage = viewer.getScreenImage(); + ImageSelection.setClipboard(eImage); + viewer.releaseScreenImage(); + } + + void createImage(String fileName, String type, int quality) { + try { + if (type.equalsIgnoreCase("CLIP")) { + clipImage(); + } else { + Image eImage = viewer.getScreenImage(); + FileOutputStream os = new FileOutputStream(fileName); + if (type.equalsIgnoreCase("JPEG") || type.equalsIgnoreCase("JPG")) { + JpegEncoder jc = new JpegEncoder(eImage, quality, os); + jc.Compress(); + } else if (type.equalsIgnoreCase("PPM")) { + PpmEncoder pc = new PpmEncoder(eImage, os); + pc.encode(); + } else if (type.equalsIgnoreCase("PNG")) { + PngEncoder png = new PngEncoder(eImage); + byte[] pngbytes = png.pngEncode(); + os.write(pngbytes); + } + os.flush(); + os.close(); + viewer.releaseScreenImage(); + } + } catch (IOException exc) { + viewer.releaseScreenImage(); + if (exc != null) { + if (status != null) { + status.setStatus(1, GT._("IO Exception:")); + status.setStatus(2, exc.toString()); + } + System.out.println(exc.toString()); + } + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-27 01:16:17
|
Revision: 5740 http://svn.sourceforge.net/jmol/?rev=5740&view=rev Author: hansonr Date: 2006-09-26 18:16:03 -0700 (Tue, 26 Sep 2006) Log Message: ----------- Success! jmol -ionx measure.spt -w CLIP t.xyz > measures.txt no display whatsoever! Thank you, NICO!!! OK, this is a hack -- I'm sure some of what I put in is unnecessary; will tweak. Bob Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java 2006-09-26 23:12:54 UTC (rev 5739) +++ trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java 2006-09-27 01:16:03 UTC (rev 5740) @@ -44,7 +44,7 @@ void render(Graphics3D g3d, Rectangle rectClip, Frame frame, int displayModelIndex) { - if (frame == null || frame.atomCount <= 0 || !viewer.getDisplayFlag()) + if (frame == null || frame.atomCount <= 0 || !viewer.mustRenderFlag()) return; logTime = viewer.getTestFlag1(); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-26 23:12:54 UTC (rev 5739) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-27 01:16:03 UTC (rev 5740) @@ -149,6 +149,7 @@ boolean autoExit = false; String writeInfo; boolean haveDisplay = true; + boolean mustRender = true; public void setAppletContext(String htmlName, URL documentBase, URL codeBase, String appletProxyOrCommandOptions) { @@ -173,6 +174,7 @@ int j = str.lastIndexOf("\1"); writeInfo = str.substring(i + 1,j); } + mustRender = (haveDisplay || writeInfo != null); } /* @@ -190,8 +192,8 @@ fileManager.setAppletContext(documentBase, codeBase, appletProxyOrCommandOptions); } - boolean getDisplayFlag() { - return haveDisplay; + boolean mustRenderFlag() { + return mustRender; } static void setLogLevel(int ilevel) { @@ -1958,12 +1960,21 @@ } void requestRepaintAndWait() { - repaintManager.requestRepaintAndWait(); + if (haveDisplay) + repaintManager.requestRepaintAndWait(); } public void repaintView() { repaintManager.repaintView(); } + + void noDisplayTest() { + if (isTainted || getSlabEnabled()) { + setModelVisibility(); + modelManager.setModelClickability(); + } + isTainted = false; + } public void renderScreenImage(Graphics g, Dimension size, Rectangle clip) { if (isTainted || getSlabEnabled()) { @@ -2157,8 +2168,11 @@ int msWalltime = eval.getExecutionWalltime(); statusManager.setStatusScriptTermination(strErrorMessage, msWalltime); if (isScriptFile) { - if (writeInfo != null) + if (writeInfo != null) { + if (!haveDisplay) + noDisplayTest(); createImage(writeInfo); + } if (autoExit) { System.out.flush(); System.exit(0); Modified: trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-09-26 23:12:54 UTC (rev 5739) +++ trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-09-27 01:16:03 UTC (rev 5740) @@ -40,7 +40,12 @@ private String displaySpeed; - public DisplayPanel(StatusBar status, GuiMap guimap) { + Dimension startupDimension; + boolean haveDisplay; + + public DisplayPanel(StatusBar status, GuiMap guimap, boolean haveDisplay, int startupWidth, int startupHeight) { + startupDimension = new Dimension(startupWidth, startupHeight); + this.haveDisplay = haveDisplay; this.status = status; this.guimap = guimap; if (System.getProperty("painttime", "false").equals("true")) @@ -54,7 +59,7 @@ public void setViewer(JmolViewer viewer) { this.viewer = viewer; - viewer.setScreenDimension(getSize(dimSize)); + viewer.setScreenDimension(haveDisplay? getSize(dimSize) : startupDimension); } // for now, default to true @@ -89,7 +94,7 @@ } private void updateSize() { - viewer.setScreenDimension(getSize(dimSize)); + viewer.setScreenDimension(haveDisplay? getSize(dimSize) : startupDimension); setRotateMode(); } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-26 23:12:54 UTC (rev 5739) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-27 01:16:03 UTC (rev 5740) @@ -160,7 +160,7 @@ status = (StatusBar) createStatusBar(); say(GT._("Initializing 3D display...")); // - display = new DisplayPanel(status, guimap); + display = new DisplayPanel(status, guimap, haveDisplay.booleanValue(), startupWidth, startupHeight); JmolAdapter modelAdapter; String adapter= System.getProperty("model"); if (adapter == null || adapter.length() == 0) @@ -190,7 +190,8 @@ say(GT._("Initializing Script Window...")); scriptWindow = new ScriptWindow(viewer, frame); say(GT._("Initializing AtomSetChooser Window...")); - atomSetChooser = new AtomSetChooser(viewer, frame); + if (haveDisplay.booleanValue()) + atomSetChooser = new AtomSetChooser(viewer, frame); MyStatusListener myStatusListener; myStatusListener = new MyStatusListener(); @@ -247,6 +248,10 @@ say(GT._("Starting display...")); display.start(); + + if (haveDisplay.booleanValue()) { + + say(GT._("Setting up File Choosers...")); openChooser = new FileChooser(); openChooser.setCurrentDirectory(currentDir); @@ -272,6 +277,8 @@ jmolpopup = JmolPopup.newJmolPopup(viewer); + } + // prevent new Jmol from covering old Jmol if (parent != null) { Point location = parent.frame.getLocationOnScreen(); @@ -364,7 +371,8 @@ Jmol window = new Jmol(splash, frame, null, startupWidth, startupHeight, commandOptions); - frame.show(); + if (haveDisplay.booleanValue()) + frame.show(); return window; } @@ -459,10 +467,8 @@ } if (line.hasOption("n")) { + commandOptions += "-n"; haveDisplay = Boolean.FALSE; - startupWidth = 200; - startupHeight = 200; - commandOptions += "-n"; } //modelFilename = "caffeine.xyz"; //Eclipse TESTING ONLY @@ -1434,6 +1440,10 @@ JOptionPane.ERROR_MESSAGE); return; } + + if (!haveDisplay.booleanValue()) + return; + jmolpopup.updateComputedMenus(); if (fullPathName == null) { // a 'clear/zap' operation @@ -1448,7 +1458,8 @@ title = modelName; frame.setTitle(title); recentFiles.notifyFileOpen(fullPathName); - pcs.firePropertyChange(chemFileProperty, null, clientFile); + if (haveDisplay.booleanValue()) + pcs.firePropertyChange(chemFileProperty, null, clientFile); } public void notifyFrameChanged(int frameNo) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-27 14:11:48
|
Revision: 5747 http://svn.sourceforge.net/jmol/?rev=5747&view=rev Author: hansonr Date: 2006-09-27 07:11:32 -0700 (Wed, 27 Sep 2006) Log Message: ----------- --paste model from clipboard in application --echo enabled prior to molecule loading Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/FileManager.java trunk/Jmol/src/org/jmol/viewer/Frame.java trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java trunk/Jmol/src/org/jmol/viewer/ModelManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java trunk/Jmol/src/org/openscience/jmol/app/ImageSelection.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -2150,15 +2150,11 @@ variables.put(variable, statement); } - boolean echoShapeActive = false; - - void echo() throws ScriptException { - if(viewer.getFrame() == null) - evalError(GT._("ECHO must follow, not precede, model loading")); + void echo() { String text = ""; if (statementLength == 2 && statement[1].tok == Token.string) text = (String) statement[1].value; - if (echoShapeActive) + if (viewer.getEchoStateActive()) viewer.setShapeProperty(JmolConstants.SHAPE_ECHO, "text", text); viewer.scriptEcho(text); } @@ -3814,11 +3810,9 @@ } void setEcho() throws ScriptException { - if(viewer.getFrame() == null) - evalError(GT._("SET ECHO must follow, not precede, model loading")); String propertyName = "target"; Object propertyValue = null; - echoShapeActive = true; + boolean echoShapeActive = true; if (statementLength < 3) badArgumentCount(); //set echo xxx @@ -3839,6 +3833,7 @@ default: keywordExpected(); } + viewer.setEchoStateActive(echoShapeActive); viewer.loadShape(JmolConstants.SHAPE_ECHO); viewer.setShapeProperty(JmolConstants.SHAPE_ECHO, propertyName, propertyValue); Modified: trunk/Jmol/src/org/jmol/viewer/FileManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/FileManager.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/jmol/viewer/FileManager.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -127,31 +127,26 @@ } void openStringInline(String strModel) { - openErrorMessage = null; - fullPathName = fileName = "string"; - inlineData = strModel; - isInline = true; - isDOM = false; - - fileOpenThread = new FileOpenThread(fullPathName, - new StringReader(strModel)); - fileOpenThread.run(); + openStringInline(strModel, null); } void openStringInline(String strModel, int[] params) { String sp = ""; if (params != null) for (int i = 0; i < params.length; i++) - sp+="," + params[i]; + sp += "," + params[i]; Logger.info("FileManager.openStringInline(" + sp + ")"); openErrorMessage = null; fullPathName = fileName = "string"; inlineData = strModel; isInline = true; isDOM = false; - - fileOpenThread = new FileOpenThread(fullPathName, - new StringReader(strModel), params); + if (params == null) + fileOpenThread = new FileOpenThread(fullPathName, new StringReader( + strModel)); + else + fileOpenThread = new FileOpenThread(fullPathName, new StringReader( + strModel), params); fileOpenThread.run(); } Modified: trunk/Jmol/src/org/jmol/viewer/Frame.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -47,17 +47,16 @@ public final class Frame { - final Viewer viewer; - final JmolAdapter adapter; - final FrameRenderer frameRenderer; + Viewer viewer; + FrameRenderer frameRenderer; private String modelSetTypeName; - final boolean isXYZ; - final boolean isPDB; - final boolean isMultiFile; - final boolean isArrayOfFiles; + boolean isXYZ; + boolean isPDB; + boolean isMultiFile; + boolean isArrayOfFiles; boolean isZeroBased; - final Mmset mmset; - final Graphics3D g3d; + Mmset mmset; + Graphics3D g3d; // the maximum BondingRadius seen in this set of atoms // used in autobonding float maxBondingRadius = Float.MIN_VALUE; @@ -197,13 +196,16 @@ int bfactor100Lo; int bfactor100Hi; - Frame(Viewer viewer, JmolAdapter adapter, Object clientFile) { + Frame(Viewer viewer, String name) { this.viewer = viewer; - this.adapter = adapter; + initializeFrame(name, 1, null, null); + initializeModel(null, null); + } + + void initializeFrame(String name, int nAtoms, Properties properties, Hashtable info) { //long timeBegin = System.currentTimeMillis(); - modelSetTypeName = adapter.getFileTypeName(clientFile).toLowerCase() - .intern(); + modelSetTypeName = name; isXYZ = (modelSetTypeName == "xyz"); isArrayOfFiles = (modelSetTypeName == "array"); setZeroBased(); @@ -217,17 +219,10 @@ loadShape(JmolConstants.SHAPE_MEASURES); loadShape(JmolConstants.SHAPE_UCCAGE); - initializeBuild(adapter.getEstimatedAtomCount(clientFile)); + initializeBuild(nAtoms); + mmset.setModelSetProperties(properties); + mmset.setModelSetAuxiliaryInfo(info); - setModelSetProperties(adapter.getAtomSetCollectionProperties(clientFile)); - setModelSetAuxiliaryInfo(adapter - .getAtomSetCollectionAuxiliaryInfo(clientFile)); - - /**************************************************************** - * crystal cell must come first, in case atom coordinates - * need to be transformed to fit in the crystal cell - ****************************************************************/ - isMultiFile = mmset.getModelSetAuxiliaryInfoBoolean("isMultiFile"); isPDB = mmset.getModelSetAuxiliaryInfoBoolean("isPDB"); someModelsHaveSymmetry = mmset @@ -236,56 +231,63 @@ .getModelSetAuxiliaryInfoBoolean("someModelsHaveUnitcells"); someModelsHaveFractionalCoordinates = mmset .getModelSetAuxiliaryInfoBoolean("someModelsHaveFractionalCoordinates"); + fileHasHbonds = false; +} - currentModelIndex = -1; - int modelCount = adapter.getAtomSetCount(clientFile); - setModelCount(modelCount); + void initializeModel(JmolAdapter adapter, Object clientFile) { + int modelCount = (adapter == null ? 1 : adapter.getAtomSetCount(clientFile)); + mmset.setModelCount(modelCount); Logger.info("frame: haveSymmetry:" + someModelsHaveSymmetry + " haveUnitcells:" + someModelsHaveUnitcells + " haveFractionalCoord:" + someModelsHaveFractionalCoordinates); - if (modelCount > 0) + if (modelCount > 0 && adapter != null) Logger .info(modelCount + " model" + (modelCount == 1 ? "" : "s") - + " in this collection. Use getProperty \"modelInfo\" or getProperty \"auxiliaryInfo\" to inspect them."); - for (int i = 0; i < modelCount; ++i) { - int modelNumber = adapter.getAtomSetNumber(clientFile, i); - String modelName = adapter.getAtomSetName(clientFile, i); - if (modelName == null) - modelName = "" + modelNumber; - Properties modelProperties = adapter.getAtomSetProperties(clientFile, i); - Hashtable modelAuxiliaryInfo = adapter.getAtomSetAuxiliaryInfo( - clientFile, i); - boolean isPDBModel = (isPDB || mmset.getModelAuxiliaryInfoBoolean(i, - "isPDB")); - setModelNameNumberProperties(i, modelName, modelNumber, modelProperties, - modelAuxiliaryInfo, isPDBModel); - } + + " in this collection. Use getProperty \"modelInfo\" or" + + " getProperty \"auxiliaryInfo\" to inspect them."); - for (JmolAdapter.AtomIterator iterAtom = adapter - .getAtomIterator(clientFile); iterAtom.hasNext();) { - short elementNumber = (short) iterAtom.getElementNumber(); - if (elementNumber <= 0) - elementNumber = JmolConstants.elementNumberFromSymbol(iterAtom - .getElementSymbol()); - char alternateLocation = iterAtom.getAlternateLocationID(); - addAtom(iterAtom.getAtomSetIndex(), iterAtom.getAtomSymmetry(), iterAtom - .getAtomSite(), iterAtom.getUniqueID(), elementNumber, iterAtom - .getAtomName(), iterAtom.getFormalCharge(), iterAtom - .getPartialCharge(), iterAtom.getOccupancy(), iterAtom.getBfactor(), - iterAtom.getX(), iterAtom.getY(), iterAtom.getZ(), iterAtom - .getIsHetero(), iterAtom.getAtomSerial(), iterAtom.getChainID(), - iterAtom.getGroup3(), iterAtom.getSequenceNumber(), iterAtom - .getInsertionCode(), iterAtom.getVectorX(), - iterAtom.getVectorY(), iterAtom.getVectorZ(), alternateLocation, - iterAtom.getClientAtomReference()); - } + if (adapter == null) { + currentModelIndex = 0; + mmset.setModelNameNumberProperties(0, "", 1, null, null, false); + } else { + currentModelIndex = -1; + for (int i = 0; i < modelCount; ++i) { + int modelNumber = adapter.getAtomSetNumber(clientFile, i); + String modelName = adapter.getAtomSetName(clientFile, i); + if (modelName == null) + modelName = "" + modelNumber; + Properties modelProperties = adapter + .getAtomSetProperties(clientFile, i); + Hashtable modelAuxiliaryInfo = adapter.getAtomSetAuxiliaryInfo( + clientFile, i); + boolean isPDBModel = (isPDB || mmset.getModelAuxiliaryInfoBoolean(i, + "isPDB")); + mmset.setModelNameNumberProperties(i, modelName, modelNumber, + modelProperties, modelAuxiliaryInfo, isPDBModel); + } - fileHasHbonds = false; + for (JmolAdapter.AtomIterator iterAtom = adapter + .getAtomIterator(clientFile); iterAtom.hasNext();) { + short elementNumber = (short) iterAtom.getElementNumber(); + if (elementNumber <= 0) + elementNumber = JmolConstants.elementNumberFromSymbol(iterAtom + .getElementSymbol()); + char alternateLocation = iterAtom.getAlternateLocationID(); + addAtom(iterAtom.getAtomSetIndex(), iterAtom.getAtomSymmetry(), + iterAtom.getAtomSite(), iterAtom.getUniqueID(), elementNumber, + iterAtom.getAtomName(), iterAtom.getFormalCharge(), iterAtom + .getPartialCharge(), iterAtom.getOccupancy(), iterAtom + .getBfactor(), iterAtom.getX(), iterAtom.getY(), iterAtom + .getZ(), iterAtom.getIsHetero(), iterAtom.getAtomSerial(), + iterAtom.getChainID(), iterAtom.getGroup3(), iterAtom + .getSequenceNumber(), iterAtom.getInsertionCode(), iterAtom + .getVectorX(), iterAtom.getVectorY(), iterAtom.getVectorZ(), + alternateLocation, iterAtom.getClientAtomReference()); + } - { JmolAdapter.BondIterator iterBond = adapter.getBondIterator(clientFile); if (iterBond != null) while (iterBond.hasNext()) { @@ -293,53 +295,61 @@ iterBond.getEncodedOrder()); } - } + JmolAdapter.StructureIterator iterStructure = adapter + .getStructureIterator(clientFile); + if (iterStructure != null) + while (iterStructure.hasNext()) { + if (!iterStructure.getStructureType().equals("turn")) + defineStructure(iterStructure.getModelIndex(), iterStructure + .getStructureType(), iterStructure.getStartChainID(), + iterStructure.getStartSequenceNumber(), iterStructure + .getStartInsertionCode(), iterStructure.getEndChainID(), + iterStructure.getEndSequenceNumber(), iterStructure + .getEndInsertionCode()); + } - // define turns LAST. (pulled by the iterator first) - // so that if they overlap they get overwritten: + // define turns LAST. (pulled by the iterator first) + // so that if they overlap they get overwritten: - JmolAdapter.StructureIterator iterStructure = adapter - .getStructureIterator(clientFile); - if (iterStructure != null) - while (iterStructure.hasNext()) { - if (!iterStructure.getStructureType().equals("turn")) - defineStructure(iterStructure.getModelIndex(), iterStructure - .getStructureType(), iterStructure.getStartChainID(), - iterStructure.getStartSequenceNumber(), iterStructure - .getStartInsertionCode(), iterStructure.getEndChainID(), - iterStructure.getEndSequenceNumber(), iterStructure - .getEndInsertionCode()); - } + iterStructure = adapter.getStructureIterator(clientFile); + if (iterStructure != null) + while (iterStructure.hasNext()) { + if (iterStructure.getStructureType().equals("turn")) + defineStructure(iterStructure.getModelIndex(), iterStructure + .getStructureType(), iterStructure.getStartChainID(), + iterStructure.getStartSequenceNumber(), iterStructure + .getStartInsertionCode(), iterStructure.getEndChainID(), + iterStructure.getEndSequenceNumber(), iterStructure + .getEndInsertionCode()); + } + } - iterStructure = adapter.getStructureIterator(clientFile); - if (iterStructure != null) - while (iterStructure.hasNext()) { - if (iterStructure.getStructureType().equals("turn")) - defineStructure(iterStructure.getModelIndex(), iterStructure - .getStructureType(), iterStructure.getStartChainID(), - iterStructure.getStartSequenceNumber(), iterStructure - .getStartInsertionCode(), iterStructure.getEndChainID(), - iterStructure.getEndSequenceNumber(), iterStructure - .getEndInsertionCode()); - } + /**************************************************************** + * crystal cell must come first, in case atom coordinates + * need to be transformed to fit in the crystal cell + ****************************************************************/ doUnitcellStuff(); doAutobond(); finalizeGroupBuild(); // set group offsets and build monomers buildPolymers(); freeze(); - adapter.finish(clientFile); finalizeBuild(); - dumpAtomSetNameDiagnostics(clientFile); } - - void setZeroBased() { - isZeroBased = isXYZ && viewer.getZeroBasedXyzRasmol(); + + Frame(Viewer viewer, JmolAdapter adapter, Object clientFile) { + this.viewer = viewer; + initializeFrame(adapter.getFileTypeName(clientFile).toLowerCase().intern(), + adapter.getEstimatedAtomCount(clientFile), adapter + .getAtomSetCollectionProperties(clientFile), adapter + .getAtomSetCollectionAuxiliaryInfo(clientFile)); + initializeModel(adapter, clientFile); + adapter.finish(clientFile); + if (false) + dumpAtomSetNameDiagnostics(adapter, clientFile); } - void dumpAtomSetNameDiagnostics(Object clientFile) { - if (true) - return; + void dumpAtomSetNameDiagnostics(JmolAdapter adapter, Object clientFile) { int frameModelCount = getModelCount(); int adapterAtomSetCount = adapter.getAtomSetCount(clientFile); Logger.debug("----------------\n" + "debugging of AtomSetName stuff\n" @@ -349,7 +359,6 @@ Logger.debug("atomSetName[" + i + "]=" + adapter.getAtomSetName(clientFile, i) + " atomSetNumber[" + i + "]=" + adapter.getAtomSetNumber(clientFile, i)); - } } @@ -732,6 +741,10 @@ mmset.setConformation(modelIndex, bsConformation); } + void setZeroBased() { + isZeroBased = isXYZ && viewer.getZeroBasedXyzRasmol(); + } + void hackAtomSerialNumbersForAnimations() { // first, validate that all atomSerials are NaN if (atomSerials != null) @@ -886,28 +899,6 @@ //////////////////////////////////////////////////////////////// - void setModelCount(int modelCount) { - mmset.setModelCount(modelCount); - } - - void setModelSetProperties(Properties modelSetProperties) { - mmset.setModelSetProperties(modelSetProperties); - } - - void setModelSetAuxiliaryInfo(Hashtable modelSetAuxiliaryInfo) { - mmset.setModelSetAuxiliaryInfo(modelSetAuxiliaryInfo); - } - - void setModelNameNumberProperties(int modelIndex, String modelName, - int modelNumber, - Properties modelProperties, - Hashtable modelAuxiliaryInfo, boolean isPDB) { - mmset.setModelNameNumberProperties(modelIndex, modelName, modelNumber, - modelProperties, modelAuxiliaryInfo, isPDB); - } - - //////////////////////////////////////////////////////////////// - int getChainCount() { return mmset.getChainCount(); } @@ -3030,4 +3021,13 @@ return selectionHaloEnabled; } + boolean echoShapeActive = false; + + boolean getEchoStateActive() { + return echoShapeActive; + } + + public void setEchoStateActive(boolean TF) { + echoShapeActive = TF; + } } Modified: trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/jmol/viewer/FrameRenderer.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -44,7 +44,7 @@ void render(Graphics3D g3d, Rectangle rectClip, Frame frame, int displayModelIndex) { - if (frame == null || frame.atomCount <= 0 || !viewer.mustRenderFlag()) + if (frame == null || !viewer.mustRenderFlag()) return; logTime = viewer.getTestFlag1(); Modified: trunk/Jmol/src/org/jmol/viewer/ModelManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -77,9 +77,12 @@ modelSetName = reduceFilename(fileName); frame = new Frame(viewer, adapter, clientFile); haveFile = true; + if (frame.atomCount == 0) + zap(); } } + String reduceFilename(String fileName) { if (fileName == null) return null; @@ -1627,4 +1630,26 @@ return; frame.calculateStructures(true); } + + void zap() { + setClientFile(null, null, null); + fullPathName = fileName = modelSetName = "zapped"; + frame = new Frame(viewer, "empty"); + haveFile = false; + } + + boolean getEchoStateActive() { + if (frame == null) + return false; + return frame.getEchoStateActive(); + } + void setEchoStateActive(boolean TF) { + if (frame == null) + return; + frame.setEchoStateActive(TF); + } + + + + } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -190,7 +190,7 @@ if (isApplet) fileManager.setAppletContext(documentBase, codeBase, appletProxyOrCommandOptions); - clear(); //zap() here would allow echos + zap(); //here to allow echos } boolean mustRenderFlag() { @@ -1069,17 +1069,16 @@ } public void openStringInline(String strModel) { - clear(); - fileManager.openStringInline(strModel); - setStatusFileLoaded(1, "string", "", modelManager.getModelSetName(), null, - getOpenFileError()); + openStringInline(strModel, null); } public void openStringInline(String strModel, int[] params) { clear(); fileManager.openStringInline(strModel, params); - setStatusFileLoaded(1, "string", "", modelManager.getModelSetName(), null, - getOpenFileError()); + String errorMsg = getOpenFileError(); + if (errorMsg == null) + setStatusFileLoaded(1, "string", "", modelManager.getModelSetName(), null, + null); } public String getInlineData() { @@ -1190,8 +1189,18 @@ // delegated to ModelManager // /////////////////////////////////////////////////////////////// + public boolean getEchoStateActive() { + return modelManager.getEchoStateActive(); + } + + public void setEchoStateActive(boolean TF) { + modelManager.setEchoStateActive(TF); + } + public void zap() { - loadInline("2||C 0 100000 0|C 100000 0 0||||||", '|'); + //loadInline("2||C 0 100000 0|C 100000 0 0||||||", '|'); + clear(); + modelManager.zap(); } public void calculateStructures() { Modified: trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties =================================================================== --- trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties 2006-09-27 14:11:32 UTC (rev 5747) @@ -44,7 +44,7 @@ # # Edit menu # -edit=editSelectAllScript selectMenu copyImage - makecrystal - prefs +edit=editSelectAllScript selectMenu pasteClipboard copyImage - makecrystal - prefs editSelectAllScript=select all Modified: trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -62,6 +62,7 @@ labels.put("deselectall", GT._("Deselect All")); labels.put("copyImage", GT._("Copy Image")); labels.put("prefs", GT._("&Preferences...")); + labels.put("pasteClipboard", GT._("&Paste")); labels.put("editSelectAllScript", GT._("Select All")); labels.put("selectMenu", GT._("Select")); labels.put("selectAllScript", GT._("All")); Modified: trunk/Jmol/src/org/openscience/jmol/app/ImageSelection.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/ImageSelection.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/openscience/jmol/app/ImageSelection.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -31,6 +31,7 @@ import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; +import java.awt.datatransfer.Clipboard; /** * This class is used to transfer an {@link Image} into the clipboard. @@ -45,7 +46,7 @@ private Image image; /** - * Transers <code>image</code> into the clipboard. + * Transfers <code>image</code> into the clipboard. * * @param image Image to transfer into the clipboard. */ @@ -88,4 +89,30 @@ return image; } + /** + * Get the String residing on the clipboard. + * from http://www.javapractices.com/Topic82.cjp + * @return any text found on the Clipboard; if none found, return an + * empty String. + */ + public static String getClipboardText() { + String result = null; + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + Transferable contents = clipboard.getContents(null); + boolean hasTransferableText = (contents != null) + && contents.isDataFlavorSupported(DataFlavor.stringFlavor); + if (hasTransferableText) { + try { + result = (String) contents.getTransferData(DataFlavor.stringFlavor); + } catch (UnsupportedFlavorException ex) { + //highly unlikely since we are using a standard DataFlavor + System.out.println(ex); + ex.printStackTrace(); + } catch (IOException ex) { + System.out.println(ex); + ex.printStackTrace(); + } + } + return result; + } } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-27 05:25:27 UTC (rev 5746) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-27 14:11:32 UTC (rev 5747) @@ -1023,6 +1023,7 @@ private static final String scriptAction = "script"; private static final String atomsetchooserAction = "atomsetchooser"; private static final String copyImageActionProperty = "copyImage"; + private static final String pasteClipboardActionProperty = "pasteClipboard"; // --- action implementations ----------------------------------- @@ -1032,6 +1033,7 @@ private PdfAction pdfAction = new PdfAction(); private PrintAction printAction = new PrintAction(); private CopyImageAction copyImageAction = new CopyImageAction(); + private PasteClipboardAction pasteClipboardAction = new PasteClipboardAction(); private ViewMeasurementTableAction viewMeasurementTableAction = new ViewMeasurementTableAction(); @@ -1043,6 +1045,7 @@ new NewAction(), new NewwinAction(), new OpenAction(), new OpenUrlAction(), printAction, exportAction, new CloseAction(), new ExitAction(), copyImageAction, + pasteClipboardAction, new AboutAction(), new WhatsNewAction(), new UguideAction(), new ConsoleAction(), new RecentFilesAction(), povrayAction, pdfAction, @@ -1125,6 +1128,20 @@ } } + class PasteClipboardAction extends AbstractAction { + + public PasteClipboardAction() { + super(pasteClipboardActionProperty); + } + + public void actionPerformed(ActionEvent e) { + String str = ImageSelection.getClipboardText(); + if (str != null && str.length() > 0) + viewer.loadInline(str); + } + } + + /** * An Action to copy the current image into the clipboard. */ @@ -1420,7 +1437,6 @@ class MyStatusListener implements JmolStatusListener { - public void createImage(String file, String type, int quality) { ImageCreator c = new ImageCreator(viewer, status); c.createImage(file, type, quality); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ni...@us...> - 2006-09-28 04:26:45
|
Revision: 5761 http://svn.sourceforge.net/jmol/?rev=5761&view=rev Author: nicove Date: 2006-09-27 21:26:29 -0700 (Wed, 27 Sep 2006) Log Message: ----------- i18n Modified Paths: -------------- trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot trunk/Jmol/src/org/jmol/translation/Jmol/ca.po trunk/Jmol/src/org/jmol/translation/Jmol/de.po trunk/Jmol/src/org/jmol/translation/Jmol/es.po trunk/Jmol/src/org/jmol/translation/Jmol/et.po trunk/Jmol/src/org/jmol/translation/Jmol/fr.po trunk/Jmol/src/org/jmol/translation/Jmol/nl.po trunk/Jmol/src/org/jmol/translation/Jmol/pt.po trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot 2006-09-28 04:26:29 UTC (rev 5761) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" @@ -695,7 +695,7 @@ msgstr "" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/jmol/translation/Jmol/ca.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/ca.po 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/ca.po 2006-09-28 04:26:29 UTC (rev 5761) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: 2006-01-30 03:35+0100\n" "Last-Translator: Toni Hermoso Pulido <to...@so...>\n" "Language-Team: Catalan <jmo...@li...>\n" @@ -700,7 +700,7 @@ msgstr "adjunta aquesta pàgina d'ajuda" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/jmol/translation/Jmol/de.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/de.po 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/de.po 2006-09-28 04:26:29 UTC (rev 5761) @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Jmol 10\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: 2006-04-14 18:00+0100\n" "Last-Translator: Sebastian Lisken <sebastianlisken at users.sourceforge." "net>\n" @@ -701,7 +701,7 @@ msgstr "zeige diese Hilfeseite an" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/jmol/translation/Jmol/es.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/es.po 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/es.po 2006-09-28 04:26:29 UTC (rev 5761) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Jmol 10\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: 2006-09-27 21:40+0100\n" "Last-Translator: Angel Herráez <ang...@ua...>\n" "Language-Team: Spanish <Jmo...@li...>\n" @@ -698,7 +698,7 @@ msgstr "mostrar esta página de ayuda" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/jmol/translation/Jmol/et.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/et.po 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/et.po 2006-09-28 04:26:29 UTC (rev 5761) @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: 2006-03-17 20:19+0100\n" "Last-Translator: Ivo Sarak <iv...@ra...>\n" "Language-Team: Estonian <Jmo...@li...>\n" @@ -698,7 +698,7 @@ msgstr "anna see abileht" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/jmol/translation/Jmol/fr.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/fr.po 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/fr.po 2006-09-28 04:26:29 UTC (rev 5761) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: 2006-09-27 19:38+0100\n" "Last-Translator: Nicolas Vervelle <ni...@us...>\n" "Language-Team: French <Jmo...@li...>\n" @@ -698,7 +698,7 @@ msgstr "affiche cette page d'aide" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/jmol/translation/Jmol/nl.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/nl.po 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/nl.po 2006-09-28 04:26:29 UTC (rev 5761) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: 2006-04-09 11:48+0100\n" "Last-Translator: Egon Willighagen <eg...@jm...>\n" "Language-Team: Dutch <jmo...@li...>\n" @@ -698,7 +698,7 @@ msgstr "geef deze help pagina" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/jmol/translation/Jmol/pt.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/pt.po 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/jmol/translation/Jmol/pt.po 2006-09-28 04:26:29 UTC (rev 5761) @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:15+0200\n" +"POT-Creation-Date: 2006-09-28 06:23+0200\n" "PO-Revision-Date: 2005-12-20 07:33-0000\n" "Last-Translator: Metro <por...@gm...>\n" "Language-Team: Portugal@Folding <Jmo...@li...>\n" @@ -698,7 +698,7 @@ msgstr "Dar esta página de ajuda" #: org/openscience/jmol/app/Jmol.java:388 -msgid "no display (and also exit when done" +msgid "no display (and also exit when done)" msgstr "" #: org/openscience/jmol/app/Jmol.java:389 Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-28 04:17:43 UTC (rev 5760) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-28 04:26:29 UTC (rev 5761) @@ -385,7 +385,7 @@ Options options = new Options(); options.addOption("h", "help", false, GT._("give this help page")); - options.addOption("n", "nodisplay", false, GT._("no display (and also exit when done")); + options.addOption("n", "nodisplay", false, GT._("no display (and also exit when done)")); options.addOption("i", "silent", false, GT._("silent startup operation")); options.addOption("o", "noconsole", false, GT._("no console -- all output to sysout")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ni...@us...> - 2006-09-28 20:17:40
|
Revision: 5767 http://svn.sourceforge.net/jmol/?rev=5767&view=rev Author: nicove Date: 2006-09-28 13:17:20 -0700 (Thu, 28 Sep 2006) Log Message: ----------- i18n Modified Paths: -------------- trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot trunk/Jmol/src/org/jmol/translation/Jmol/ca.po trunk/Jmol/src/org/jmol/translation/Jmol/de.po trunk/Jmol/src/org/jmol/translation/Jmol/es.po trunk/Jmol/src/org/jmol/translation/Jmol/et.po trunk/Jmol/src/org/jmol/translation/Jmol/fr.po trunk/Jmol/src/org/jmol/translation/Jmol/nl.po trunk/Jmol/src/org/jmol/translation/Jmol/pt.po trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/Jmol.pot 2006-09-28 20:17:20 UTC (rev 5767) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" @@ -553,7 +553,7 @@ msgstr "" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 msgid "Jmol Java Console" msgstr "" @@ -715,59 +715,61 @@ msgstr "" #: org/openscience/jmol/app/Jmol.java:405 -msgid "window size, e.g. -g500x500" +#, java-format +msgid "window size, e.g. {0}" msgstr "" #: org/openscience/jmol/app/Jmol.java:411 -msgid "CLIP or JPG|PNG|PPM:filename" +#, java-format +msgid "{0} or {1}:filename" msgstr "" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" msgstr "" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" msgstr "" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "" -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "" -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "" -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/ca.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/ca.po 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/ca.po 2006-09-28 20:17:20 UTC (rev 5767) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" "PO-Revision-Date: 2006-01-30 03:35+0100\n" "Last-Translator: Toni Hermoso Pulido <to...@so...>\n" "Language-Team: Catalan <jmo...@li...>\n" @@ -554,7 +554,7 @@ msgstr "Novetats" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 #, fuzzy msgid "Jmol Java Console" msgstr "Consola del Jmol" @@ -720,62 +720,63 @@ msgstr "les opcions implementades es descriuen a continuació" #: org/openscience/jmol/app/Jmol.java:405 -#, fuzzy -msgid "window size, e.g. -g500x500" +#, fuzzy, java-format +msgid "window size, e.g. {0}" msgstr "mida de la finestra 500x500" #: org/openscience/jmol/app/Jmol.java:411 -msgid "CLIP or JPG|PNG|PPM:filename" +#, java-format +msgid "{0} or {1}:filename" msgstr "" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" msgstr "" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" msgstr "" "Les opcions són -D són com es descriu a continuació (paràmetres per defecte " "en parèntesis):" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "S'està executant la seqüència..." -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "Neteja" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "No s'ha pogut crear l'àrea de text de la consola:" -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "S'està tancant el Jmol..." -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "Macroinstruccions" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "Obre un URL" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "Introduïu l'URL d'un model molecular" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "No s'ha carregat el fitxer" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "S'ha produït una excepció IO:" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/de.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/de.po 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/de.po 2006-09-28 20:17:20 UTC (rev 5767) @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Jmol 10\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" "PO-Revision-Date: 2006-04-14 18:00+0100\n" "Last-Translator: Sebastian Lisken <sebastianlisken at users.sourceforge." "net>\n" @@ -555,7 +555,7 @@ msgstr "Neuigkeiten" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 #, fuzzy msgid "Jmol Java Console" msgstr "Jmol-Konsole" @@ -721,60 +721,61 @@ msgstr "unterstützte Optionen sind weiter unten angegeben" #: org/openscience/jmol/app/Jmol.java:405 -#, fuzzy -msgid "window size, e.g. -g500x500" +#, fuzzy, java-format +msgid "window size, e.g. {0}" msgstr "Fenstergröße 500x500" #: org/openscience/jmol/app/Jmol.java:411 -msgid "CLIP or JPG|PNG|PPM:filename" +#, java-format +msgid "{0} or {1}:filename" msgstr "" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" msgstr "" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" msgstr "Folgende -D-Optionen werden unterstützt (Standardwerte in Klammern):" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "Skript ausführen..." -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "Leeren" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "ConsoleTextArea konnte nicht erstellt werden: " -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "Beende Jmol..." -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "Makros" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "URL öffnen" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "URL eines Molekül-Modells eingeben" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "Datei wurde nicht geladen" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "IO-Fehler:" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/es.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/es.po 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/es.po 2006-09-28 20:17:20 UTC (rev 5767) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Jmol 10\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" "PO-Revision-Date: 2006-09-27 21:40+0100\n" "Last-Translator: Angel Herráez <ang...@ua...>\n" "Language-Team: Spanish <Jmo...@li...>\n" @@ -556,7 +556,7 @@ msgstr "Novedades" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 msgid "Jmol Java Console" msgstr "Consola Java de Jmol" @@ -718,61 +718,61 @@ msgstr "las opciones admitidas se muestran a continuación" #: org/openscience/jmol/app/Jmol.java:405 -#, fuzzy -msgid "window size, e.g. -g500x500" +#, fuzzy, java-format +msgid "window size, e.g. {0}" msgstr "tamaño de ventana: 500x500" #: org/openscience/jmol/app/Jmol.java:411 -#, fuzzy -msgid "CLIP or JPG|PNG|PPM:filename" -msgstr " nombre de archivo JPG|PNG|PPM" +#, java-format +msgid "{0} or {1}:filename" +msgstr "" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" msgstr "" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" msgstr "Las opciones -D son (valores predeterminados entre paréntesis):" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "Ejecutando guión..." -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "Limpiar" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "No se pudo crear el área de texto de la consola" -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "Cerrando Jmol..." -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "Macros" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "Abrir URL" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "Escribe la URL del modelo molecular" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "El archivo no se ha cargado" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "Error de entrada/salida:" @@ -1110,6 +1110,10 @@ msgid "What's New in Jmol" msgstr "Novedades en Jmol" +#, fuzzy +#~ msgid "CLIP or JPG|PNG|PPM:filename" +#~ msgstr " nombre de archivo JPG|PNG|PPM" + #~ msgid "no display" #~ msgstr "sin mostrar" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/et.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/et.po 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/et.po 2006-09-28 20:17:20 UTC (rev 5767) @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" "PO-Revision-Date: 2006-03-17 20:19+0100\n" "Last-Translator: Ivo Sarak <iv...@ra...>\n" "Language-Team: Estonian <Jmo...@li...>\n" @@ -554,7 +554,7 @@ msgstr "Mida on uut?" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 #, fuzzy msgid "Jmol Java Console" msgstr "Jmol konsool" @@ -718,60 +718,61 @@ msgstr "lubatud valikud on eespool" #: org/openscience/jmol/app/Jmol.java:405 -#, fuzzy -msgid "window size, e.g. -g500x500" +#, fuzzy, java-format +msgid "window size, e.g. {0}" msgstr "akna suurus 500x500" #: org/openscience/jmol/app/Jmol.java:411 -msgid "CLIP or JPG|PNG|PPM:filename" +#, java-format +msgid "{0} or {1}:filename" msgstr "" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" msgstr "" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" msgstr "-D valikud on järgnevad (vaikeväärtus on sulgudes):" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "Käivitan skripti..." -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "Puhasta" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "Ei saa luua ConsoleTextArea: " -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "Jmol sulgemine..." -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "Makrod" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "Ava URL" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "Sisesta molekulaarmudeli URL" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "Fail ei ole loetud" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "IO eriolukord:" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/fr.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/fr.po 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/fr.po 2006-09-28 20:17:20 UTC (rev 5767) @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" -"PO-Revision-Date: 2006-09-27 19:38+0100\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" +"PO-Revision-Date: 2006-09-28 22:10+0100\n" "Last-Translator: Nicolas Vervelle <ni...@us...>\n" "Language-Team: French <Jmo...@li...>\n" "MIME-Version: 1.0\n" @@ -555,7 +555,7 @@ msgstr "Les Nouveautés" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 msgid "Jmol Java Console" msgstr "Console Java Jmol" @@ -630,8 +630,7 @@ #: org/openscience/jmol/app/Jmol.java:127 msgid "Error starting Jmol: the property 'user.home' is not defined." -msgstr "" -"Erreur au démarrage de Jmol: la propriété 'user.home' n'est pas définie." +msgstr "Erreur au démarrage de Jmol: la propriété 'user.home' n'est pas définie." #: org/openscience/jmol/app/Jmol.java:161 msgid "Initializing 3D display..." @@ -699,7 +698,7 @@ #: org/openscience/jmol/app/Jmol.java:388 msgid "no display (and also exit when done)" -msgstr "" +msgstr "pas d'affichage (et quitter quand c'est fini)" #: org/openscience/jmol/app/Jmol.java:389 msgid "silent startup operation" @@ -718,62 +717,61 @@ msgstr "les options supportées sont données ci-dessous" #: org/openscience/jmol/app/Jmol.java:405 -#, fuzzy -msgid "window size, e.g. -g500x500" -msgstr "taille fenêtre 500x500" +#, java-format +msgid "window size, e.g. {0}" +msgstr "taille de la fenêtre, par exemple {0}" #: org/openscience/jmol/app/Jmol.java:411 -#, fuzzy -msgid "CLIP or JPG|PNG|PPM:filename" -msgstr " JPG|PNG|PPM:nomFichier" +#, java-format +msgid "{0} or {1}:filename" +msgstr "{0} ou {1}:nomFichier" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" -msgstr "" +msgstr "terminer après le script (implicite avec -n)" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" -msgstr "" +msgstr "Par exemple:" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" -msgstr "" -"Les options -D sont les suivantes (valeurs par défaut entre parenthèses):" +msgstr "Les options -D sont les suivantes (valeurs par défaut entre parenthèses):" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "Exécution du script..." -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "Effacer" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "Impossible de créer la ConsoleTextArea:" -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "Fermeture de Jmol..." -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "Macros" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "Ouvrir une URL" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "Saisissez l'URL d'un modèle moléculaire" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "Fichier non chargé" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "Exception E/S!" @@ -806,12 +804,8 @@ msgstr "Racine du nom de fichier" #: org/openscience/jmol/app/PovrayDialog.java:162 -msgid "" -"Single frame: eg 'caffine' -> 'caffine.pov'; Multiple frame: eg 'caffine' -> " -"'caffine_1.pov', 'caffine_2.pov'" -msgstr "" -"Une seule trame: 'caffine' -> 'caffine.pov'; Plusieurs trames: 'caffine' -> " -"'caffine_1.pov', 'caffine_2.pov'" +msgid "Single frame: eg 'caffine' -> 'caffine.pov'; Multiple frame: eg 'caffine' -> 'caffine_1.pov', 'caffine_2.pov'" +msgstr "Une seule trame: 'caffine' -> 'caffine.pov'; Plusieurs trames: 'caffine' -> 'caffine_1.pov', 'caffine_2.pov'" #: org/openscience/jmol/app/PovrayDialog.java:172 msgid "Working Directory" @@ -847,9 +841,7 @@ #: org/openscience/jmol/app/PovrayDialog.java:223 msgid "Render each model (not only the currently displayed one)" -msgstr "" -"Crée une image pour chaque modèle (pas seulement pour celui actuellement " -"affiché)" +msgstr "Crée une image pour chaque modèle (pas seulement pour celui actuellement affiché)" #: org/openscience/jmol/app/PovrayDialog.java:232 msgid "Turn on POV-Ray anti-aliasing" @@ -857,8 +849,7 @@ #: org/openscience/jmol/app/PovrayDialog.java:234 msgid "Use povray's slower but higher quality anti-aliasing mode" -msgstr "" -"Utiliser l'anti-aliasing de povray, plus lent mais de meilleure qualité" +msgstr "Utiliser l'anti-aliasing de povray, plus lent mais de meilleure qualité" #: org/openscience/jmol/app/PovrayDialog.java:243 msgid "Display While Rendering" @@ -1111,78 +1102,59 @@ msgid "What's New in Jmol" msgstr "Les nouveautés de Jmol" +#, fuzzy +#~ msgid "CLIP or JPG|PNG|PPM:filename" +#~ msgstr " JPG|PNG|PPM:nomFichier" #~ msgid "no display" #~ msgstr "sans affichage" - #~ msgid "run script and exit" #~ msgstr "exécuter le script et terminer" #, fuzzy #~ msgid "atoms selected" #~ msgstr "groupe d'atomes" - #~ msgid "Jmol executing script ..." #~ msgstr "Exécution du script par Jmol..." - #~ msgid "Rasmol Scripts" #~ msgstr "Scripts Rasmol" - #~ msgid "Wi&reframe Rotation" #~ msgstr "Rotation &fil de fer" - #~ msgid "Wireframe Rotation" #~ msgstr "Rotation fil de fer" - #~ msgid "Colors" #~ msgstr "Couleurs" - #~ msgid "Background" #~ msgstr "Arrière-plan" - #~ msgid "Set the Background Color" #~ msgstr "Régler la couleur d'Arrière-plan" - #~ msgid "Background Color" #~ msgstr "Couleur d'Arrière-plan" - #~ msgid "Picked Atoms" #~ msgstr "Atomes Choisis" - #~ msgid "Set the Color for Picked Atoms" #~ msgstr "Régler la Couleur pour les Atomes Choisis" - #~ msgid "Picked Atom Color" #~ msgstr "Couleur de l'Atome Choisi" - #~ msgid "Text" #~ msgstr "Texte" - #~ msgid "Set the Color for Text" #~ msgstr "Régler la Couleur pour le Texte" - #~ msgid "Text Color" #~ msgstr "Couleur du Texte" - #~ msgid "Set the Color for Bonds" #~ msgstr "Régler la Couleur pour les Liens" - #~ msgid "Bond Color" #~ msgstr "Couleur des Liens" - #~ msgid "Vectors" #~ msgstr "Vecteurs" - #~ msgid "Set the Vector Color" #~ msgstr "Régler la Couleur de Vecteur" - #~ msgid "Vector Color" #~ msgstr "Couleur de Vecteur" - #~ msgid "Color for distance, angle, & torsion measurements" #~ msgstr "Couleur pour les mesures de distance, angle & torsion" - #~ msgid "Measurements Color" #~ msgstr "Couleur des Mesures" - #~ msgid "Loading plugins..." #~ msgstr "Chargement des plugins..." + Modified: trunk/Jmol/src/org/jmol/translation/Jmol/nl.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/nl.po 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/nl.po 2006-09-28 20:17:20 UTC (rev 5767) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" "PO-Revision-Date: 2006-04-09 11:48+0100\n" "Last-Translator: Egon Willighagen <eg...@jm...>\n" "Language-Team: Dutch <jmo...@li...>\n" @@ -554,7 +554,7 @@ msgstr "Wat is Nieuw" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 #, fuzzy msgid "Jmol Java Console" msgstr "Jmol Console" @@ -718,60 +718,61 @@ msgstr "ondersteunde waarde staan hieronder" #: org/openscience/jmol/app/Jmol.java:405 -#, fuzzy -msgid "window size, e.g. -g500x500" +#, fuzzy, java-format +msgid "window size, e.g. {0}" msgstr "windowgrootte 500x500" #: org/openscience/jmol/app/Jmol.java:411 -msgid "CLIP or JPG|PNG|PPM:filename" +#, java-format +msgid "{0} or {1}:filename" msgstr "" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" msgstr "" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" msgstr "De -D opties zijn (standaard waarden tussen haakjes):" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "Afspelen van script..." -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "Wissen" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "Kon geen ConsoleTextArea aanmaken:" -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "Bezig met afsluiten Jmol..." -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "Macro's" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "Open URL" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "Geef URL van molecuulmodel" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "Bestand niet geladen" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "IO-fout:" Modified: trunk/Jmol/src/org/jmol/translation/Jmol/pt.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/Jmol/pt.po 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/jmol/translation/Jmol/pt.po 2006-09-28 20:17:20 UTC (rev 5767) @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Jmol\n" "Report-Msgid-Bugs-To: jmo...@li...\n" -"POT-Creation-Date: 2006-09-28 06:23+0200\n" +"POT-Creation-Date: 2006-09-28 22:03+0200\n" "PO-Revision-Date: 2005-12-20 07:33-0000\n" "Last-Translator: Metro <por...@gm...>\n" "Language-Team: Portugal@Folding <Jmo...@li...>\n" @@ -554,7 +554,7 @@ msgstr "O que há de novo" #: org/openscience/jmol/app/GuiMap.java:158 -#: org/openscience/jmol/app/Jmol.java:552 +#: org/openscience/jmol/app/Jmol.java:553 #, fuzzy msgid "Jmol Java Console" msgstr "Consola Jmol" @@ -718,60 +718,61 @@ msgstr "opções suportadas são referidas em baixo" #: org/openscience/jmol/app/Jmol.java:405 -#, fuzzy -msgid "window size, e.g. -g500x500" +#, fuzzy, java-format +msgid "window size, e.g. {0}" msgstr "tamanho da janela 500x500" #: org/openscience/jmol/app/Jmol.java:411 -msgid "CLIP or JPG|PNG|PPM:filename" +#, java-format +msgid "{0} or {1}:filename" msgstr "" -#: org/openscience/jmol/app/Jmol.java:417 +#: org/openscience/jmol/app/Jmol.java:418 msgid "exit after script (implicit with -n)" msgstr "" -#: org/openscience/jmol/app/Jmol.java:438 +#: org/openscience/jmol/app/Jmol.java:439 msgid "For example:" msgstr "" -#: org/openscience/jmol/app/Jmol.java:442 +#: org/openscience/jmol/app/Jmol.java:443 msgid "The -D options are as follows (defaults in parathesis):" msgstr "As opções -D são as seguintes (pré-definição em parentesis):" -#: org/openscience/jmol/app/Jmol.java:540 +#: org/openscience/jmol/app/Jmol.java:541 msgid "Executing script..." msgstr "Executando um script..." -#: org/openscience/jmol/app/Jmol.java:560 +#: org/openscience/jmol/app/Jmol.java:561 #: org/openscience/jmol/app/ScriptWindow.java:93 msgid "Clear" msgstr "Limpar" -#: org/openscience/jmol/app/Jmol.java:573 +#: org/openscience/jmol/app/Jmol.java:574 msgid "Could not create ConsoleTextArea: " msgstr "Não foi possível criar 'ConsoleTextArea':" -#: org/openscience/jmol/app/Jmol.java:649 +#: org/openscience/jmol/app/Jmol.java:650 msgid "Closing Jmol..." msgstr "Fechar Jmol..." -#: org/openscience/jmol/app/Jmol.java:885 +#: org/openscience/jmol/app/Jmol.java:886 msgid "Macros" msgstr "Macros" -#: org/openscience/jmol/app/Jmol.java:1224 +#: org/openscience/jmol/app/Jmol.java:1225 msgid "Open URL" msgstr "Abrir URL" -#: org/openscience/jmol/app/Jmol.java:1225 +#: org/openscience/jmol/app/Jmol.java:1226 msgid "Enter URL of molecular model" msgstr "Escrever URL de um modelo molecular" -#: org/openscience/jmol/app/Jmol.java:1460 +#: org/openscience/jmol/app/Jmol.java:1461 msgid "File not loaded" msgstr "Ficheiro não carregado" -#: org/openscience/jmol/app/Jmol.java:1605 +#: org/openscience/jmol/app/Jmol.java:1606 msgid "IO Exception:" msgstr "Excepção IO:" Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-28 15:24:46 UTC (rev 5766) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-28 20:17:20 UTC (rev 5767) @@ -402,13 +402,14 @@ options.addOption(OptionBuilder.create("D")); OptionBuilder.withLongOpt("geometry"); - OptionBuilder.withDescription(GT._("window size, e.g. -g500x500")); + OptionBuilder.withDescription(GT._("window size, e.g. {0}", new Object[] { "-g500x500" })); OptionBuilder.withValueSeparator(); OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("g")); OptionBuilder.withLongOpt("write"); - OptionBuilder.withDescription(GT._("CLIP or JPG|PNG|PPM:filename")); + OptionBuilder.withDescription(GT._("{0} or {1}:filename", + new Object[] { "CLIP", "JPG|PNG|PPM" })); OptionBuilder.withValueSeparator(); OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("w")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-09-30 23:26:50
|
Revision: 5783 http://svn.sourceforge.net/jmol/?rev=5783&view=rev Author: hansonr Date: 2006-09-30 16:26:42 -0700 (Sat, 30 Sep 2006) Log Message: ----------- it's really a very neat idea to allow JPEG64 encoding so that the applet might be able to create it's own images, at least with Mozilla. This would require moving JPEGEncoder at least to Util. Do we want to do this? Here's a little base64 encoder at least.... Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-30 19:52:10 UTC (rev 5782) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-09-30 23:26:42 UTC (rev 5783) @@ -4270,9 +4270,9 @@ checkLength3(); String type = (tok == Token.identifier ? (String) statement[1].value : stringParameter(1)); - if (";JPEG;JPG;PDF;PNG;".indexOf((";"+type+";").toUpperCase()) < 0) + if (";JPEG;JPG64;JPG;PDF;PNG;".indexOf((";"+type+";").toUpperCase()) < 0) evalError(GT._("write what? {0} or {1} \"filename\"", - new Object[] { "CLIPBOARD", "JPG|PNG|PPM" } )); + new Object[] { "CLIPBOARD", "JPG|JPG64|PNG|PPM" } )); String fileName = (statement[2].tok == Token.identifier ? (String) statement[2].value : stringParameter(2)); viewer.createImage(fileName, type, 100); Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-30 19:52:10 UTC (rev 5782) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-09-30 23:26:42 UTC (rev 5783) @@ -409,7 +409,7 @@ OptionBuilder.withLongOpt("write"); OptionBuilder.withDescription(GT._("{0} or {1}:filename", - new Object[] { "CLIP", "JPG|PNG|PPM" })); + new Object[] { "CLIP", "JPG|JPG64|PNG|PPM" })); OptionBuilder.withValueSeparator(); OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("w")); @@ -1576,6 +1576,56 @@ this.status = status; } + /** + * (maybe? -- untested) + * @param quality + * @return base64-encoded version of the image + */ + public String getJpegBase64(int quality) { + Image eImage = viewer.getScreenImage(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + JpegEncoder jc = new JpegEncoder(eImage, quality, os); + jc.Compress(); + byte[] jpeg = os.toByteArray(); + viewer.releaseScreenImage(); + return "" + getBase64(jpeg); + } + + static String base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + StringBuffer getBase64(byte[] bytes) { + long nBytes = bytes.length; + StringBuffer sout = new StringBuffer(); + if (nBytes == 0) + return sout; + for (int i = 0, nPad = 0; i < nBytes && nPad == 0;) { + if (false) { + sout.append( (char) bytes[i++]); + } else { + if (i % 75 == 0 && i != 0) + sout.append("\r\n"); + nPad = (i + 2 == nBytes ? 1 : i + 1 == nBytes ? 2 : 0); + int outbytes = (((int) (bytes[i++]) << 16) & 0xFF0000) + | ((nPad >= 1 ? 0 : (int) (bytes[i++]) << 8) & 0x00FF00) + | ((nPad == 2 ? 0 : (int) bytes[i++]) & 0x0000FF); + + sout.append(base64.charAt((outbytes >> 18) & 0x3F)); + + sout.append(base64.charAt((outbytes >> 12) & 0x3F)); + sout.append(nPad == 2 ? '=' : base64.charAt((outbytes >> 6) & 0x3F)); + sout.append(nPad >= 1 ? '=' : base64.charAt(outbytes & 0x3F)); + } + } + return sout; + } + + byte[] toBytes(StringBuffer sb) { + byte[] b = new byte[sb.length()]; + for (int i = sb.length(); --i >= 0;) + b[i] = (byte) sb.charAt(i); + return b; + } + + void clipImage() { Image eImage = viewer.getScreenImage(); ImageSelection.setClipboard(eImage); @@ -1599,6 +1649,14 @@ PngEncoder png = new PngEncoder(eImage); byte[] pngbytes = png.pngEncode(); os.write(pngbytes); + } else if (type.equalsIgnoreCase("JPG64")) { + ByteArrayOutputStream osb = new ByteArrayOutputStream(); + JpegEncoder jc = new JpegEncoder(eImage, quality, osb); + jc.Compress(); + osb.flush(); + osb.close(); + StringBuffer jpg = getBase64(osb.toByteArray()); + os.write(toBytes(jpg)); } os.flush(); os.close(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-03 19:36:28
|
Revision: 5810 http://svn.sourceforge.net/jmol/?rev=5810&view=rev Author: hansonr Date: 2006-10-03 12:35:56 -0700 (Tue, 03 Oct 2006) Log Message: ----------- preliminary 10.9.71 -allows getProperty "image" -fixes slow isosurface solvent surface construction problem -select translation=666 (not ready/may not documented for now) we need to have license documents collected. Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Frame.java trunk/Jmol/src/org/jmol/viewer/JmolConstants.java trunk/Jmol/src/org/jmol/viewer/PropertyManager.java trunk/Jmol/src/org/jmol/viewer/Token.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Added Paths: ----------- trunk/Jmol/src/org/jmol/util/Base64.java trunk/Jmol/src/org/jmol/util/JpegEncoder.java Modified: trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -80,6 +80,7 @@ // expands to 22 for cartesianToFractional matrix as array (PDB) SpaceGroup spaceGroup; + Vector latticeKey; UnitCell unitCell; AtomSetCollection(String fileTypeName) { @@ -180,6 +181,7 @@ bonds = null; notionalUnitCell = null; spaceGroup = null; + latticeKey = null; structures = new Structure[16]; atomSetNumbers = new int[16]; atomSetNames = new String[16]; @@ -406,6 +408,7 @@ int operationCount = finalOperations.length; cartesians = new Point3f[count * operationCount * maxX * maxY * maxZ]; int pt = 0; + latticeKey = new Vector(); for (int tx = 0; tx < maxX; tx++) for (int ty = 0; ty < maxY; ty++) for (int tz = 0; tz < maxZ; tz++) @@ -420,6 +423,7 @@ setAtomSetAuxiliaryInfo("presymmetryAtomCount", new Integer(count)); setAtomSetAuxiliaryInfo("symmetryCount", new Integer(operationCount)); setAtomSetAuxiliaryInfo("latticeDesignation", spaceGroup.getLatticeDesignation()); + setAtomSetCollectionAuxiliaryInfo("latticeKey", latticeKey); spaceGroup = null; notionalUnitCell = new float[6]; coordinatesAreFractional = false; //turn off global fractional conversion -- this wil be model by model @@ -431,6 +435,7 @@ int count, int transX, int transY, int transZ, int pt) { boolean isBaseCell = (transX == 0 && transY == 0 && transZ == 0); int nOperations = finalOperations.length; + Integer latticeKeyCode = new Integer((transX +5)*100 + (transY + 5)*10 + transZ + 5); if (isBaseCell) pt = 0; for (; pt < count; pt++) { @@ -438,6 +443,7 @@ cartesians[pt] = new Point3f(atom); finalOperations[0].transform(cartesians[pt]); atom.bsSymmetry.set(0); + latticeKey.add(pt, latticeKeyCode); } for (int iSym = 0; iSym < nOperations; iSym++) { int pt0 = pt; @@ -467,6 +473,7 @@ } } if (special == null) { + latticeKey.add(pt, latticeKeyCode); Atom atom1 = newCloneAtom(atoms[i]); atom1.x = atom.x; atom1.y = atom.y; Added: trunk/Jmol/src/org/jmol/util/Base64.java =================================================================== --- trunk/Jmol/src/org/jmol/util/Base64.java (rev 0) +++ trunk/Jmol/src/org/jmol/util/Base64.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -0,0 +1,56 @@ +// Version 1.0a +// Copyright (C) 1998, James R. Weeks and BioElectroMech. +// Visit BioElectroMech at www.obrador.com. Email Ja...@ob.... + +// See license.txt for details about the allowed used of this software. +// This software is based in part on the work of the Independent JPEG Group. +// See IJGreadme.txt for details about the Independent JPEG Group's license. + +// This encoder is inspired by the Java Jpeg encoder by Florian Raemy, +// studwww.eurecom.fr/~raemy. +// It borrows a great deal of code and structure from the Independent +// Jpeg Group's Jpeg 6a library, Copyright Thomas G. Lane. +// See license.txt for details. + +package org.jmol.util; + +public class Base64 { + + private static String base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + public static StringBuffer getBase64(StringBuffer str) { + return getBase64(toBytes(str)); + } + + public static StringBuffer getBase64(byte[] bytes) { + long nBytes = bytes.length; + StringBuffer sout = new StringBuffer(); + if (nBytes == 0) + return sout; + for (int i = 0, nPad = 0; i < nBytes && nPad == 0;) { + if (false) { + sout.append( (char) bytes[i++]); + } else { + if (i % 75 == 0 && i != 0) + sout.append("\r\n"); + nPad = (i + 2 == nBytes ? 1 : i + 1 == nBytes ? 2 : 0); + int outbytes = (((int) (bytes[i++]) << 16) & 0xFF0000) + | ((nPad >= 1 ? 0 : (int) (bytes[i++]) << 8) & 0x00FF00) + | ((nPad == 2 ? 0 : (int) bytes[i++]) & 0x0000FF); + + sout.append(base64.charAt((outbytes >> 18) & 0x3F)); + + sout.append(base64.charAt((outbytes >> 12) & 0x3F)); + sout.append(nPad == 2 ? '=' : base64.charAt((outbytes >> 6) & 0x3F)); + sout.append(nPad >= 1 ? '=' : base64.charAt(outbytes & 0x3F)); + } + } + return sout; + } + + public static byte[] toBytes(StringBuffer sb) { + byte[] b = new byte[sb.length()]; + for (int i = sb.length(); --i >= 0;) + b[i] = (byte) sb.charAt(i); + return b; + } +} \ No newline at end of file Copied: trunk/Jmol/src/org/jmol/util/JpegEncoder.java (from rev 5783, trunk/Jmol/src/com/obrador/JpegEncoder.java) =================================================================== --- trunk/Jmol/src/org/jmol/util/JpegEncoder.java (rev 0) +++ trunk/Jmol/src/org/jmol/util/JpegEncoder.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -0,0 +1,1371 @@ +// Version 1.0a +// Copyright (C) 1998, James R. Weeks and BioElectroMech. +// Visit BioElectroMech at www.obrador.com. Email Ja...@ob.... + +// See license.txt for details about the allowed used of this software. +// This software is based in part on the work of the Independent JPEG Group. +// See IJGreadme.txt for details about the Independent JPEG Group's license. + +// This encoder is inspired by the Java Jpeg encoder by Florian Raemy, +// studwww.eurecom.fr/~raemy. +// It borrows a great deal of code and structure from the Independent +// Jpeg Group's Jpeg 6a library, Copyright Thomas G. Lane. +// See license.txt for details. + +package org.jmol.util; + +import java.awt.*; +import java.awt.image.*; +import java.io.*; +import java.util.*; + +/* + * JpegEncoder - The JPEG main program which performs a jpeg compression of + * an image. + */ + +public class JpegEncoder extends Frame +{ + Thread runner; + BufferedOutputStream outStream; + Image image; + JpegInfo JpegObj; + Huffman Huf; + DCT dct; + int imageHeight, imageWidth; + int Quality; + int code; + public static int[] jpegNaturalOrder = { + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + }; + + public JpegEncoder(Image image, int quality, OutputStream out) + { + MediaTracker tracker = new MediaTracker(this); + tracker.addImage(image, 0); + try { + tracker.waitForID(0); + } + catch (InterruptedException e) { + // Got to do something? + } + /* + * Quality of the image. + * 0 to 100 and from bad image quality, high compression to good + * image quality low compression + */ + Quality=quality; + + /* + * Getting picture information + * It takes the Width, Height and RGB scans of the image. + */ + JpegObj = new JpegInfo(image); + + imageHeight=JpegObj.imageHeight; + imageWidth=JpegObj.imageWidth; + outStream = new BufferedOutputStream(out); + dct = new DCT(Quality); + Huf=new Huffman(imageWidth,imageHeight); + } + + public void setQuality(int quality) { + dct = new DCT(quality); + } + + public int getQuality() { + return Quality; + } + + public void Compress() { + WriteHeaders(outStream); + WriteCompressedData(outStream); + WriteEOI(outStream); + try { + outStream.flush(); + } catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + } + + public void WriteCompressedData(BufferedOutputStream outStream) { + int i, j, r, c,a ,b; + int comp, xpos, ypos, xblockoffset, yblockoffset; + float inputArray[][]; + float dctArray1[][] = new float[8][8]; + double dctArray2[][] = new double[8][8]; + int dctArray3[] = new int[8*8]; + + /* + * This method controls the compression of the image. + * Starting at the upper left of the image, it compresses 8x8 blocks + * of data until the entire image has been compressed. + */ + + int lastDCvalue[] = new int[JpegObj.NumberOfComponents]; + //int zeroArray[] = new int[64]; // initialized to hold all zeros + //int Width = 0, Height = 0; + //int nothing = 0, not; + int MinBlockWidth, MinBlockHeight; + // This initial setting of MinBlockWidth and MinBlockHeight is done to + // ensure they start with values larger than will actually be the case. + MinBlockWidth = ((imageWidth%8 != 0) ? + (int) (Math.floor(imageWidth/8.0) + 1) * 8 : + imageWidth); + MinBlockHeight = ((imageHeight%8 != 0) ? + (int) (Math.floor(imageHeight/8.0) + 1) * 8 : + imageHeight); + for (comp = 0; comp < JpegObj.NumberOfComponents; comp++) { + MinBlockWidth = Math.min(MinBlockWidth, JpegObj.BlockWidth[comp]); + MinBlockHeight = Math.min(MinBlockHeight, JpegObj.BlockHeight[comp]); + } + xpos = 0; + for (r = 0; r < MinBlockHeight; r++) { + for (c = 0; c < MinBlockWidth; c++) { + xpos = c*8; + ypos = r*8; + for (comp = 0; comp < JpegObj.NumberOfComponents; comp++) { + //Width = JpegObj.BlockWidth[comp]; + //Height = JpegObj.BlockHeight[comp]; + inputArray = (float[][]) JpegObj.Components[comp]; + + for(i = 0; i < JpegObj.VsampFactor[comp]; i++) { + for(j = 0; j < JpegObj.HsampFactor[comp]; j++) { + xblockoffset = j * 8; + yblockoffset = i * 8; + for (a = 0; a < 8; a++) { + for (b = 0; b < 8; b++) { + + // I believe this is where the dirty line at the bottom of + // the image is coming from. + // I need to do a check here to make sure I'm not reading past + // image data. + // This seems to not be a big issue right now. (04/04/98) + + dctArray1[a][b] = + inputArray[ypos + yblockoffset + a][xpos + xblockoffset + b]; + } + } + // The following code commented out because on some images this technique + // results in poor right and bottom borders. + // if ((!JpegObj.lastColumnIsDummy[comp] || c < Width - 1) && + // (!JpegObj.lastRowIsDummy[comp] || r < Height - 1)) { + dctArray2 = dct.forwardDCT(dctArray1); + dctArray3 = dct.quantizeBlock(dctArray2, JpegObj.QtableNumber[comp]); + // } + // else { + // zeroArray[0] = dctArray3[0]; + // zeroArray[0] = lastDCvalue[comp]; + // dctArray3 = zeroArray; + // } + Huf.HuffmanBlockEncoder(outStream, dctArray3, lastDCvalue[comp], JpegObj.DCtableNumber[comp], JpegObj.ACtableNumber[comp]); + lastDCvalue[comp] = dctArray3[0]; + } + } + } + } + } + Huf.flushBuffer(outStream); + } + + public void WriteEOI(BufferedOutputStream out) { + byte[] EOI = {(byte) 0xFF, (byte) 0xD9}; + WriteMarker(EOI, out); + } + + public void WriteHeaders(BufferedOutputStream out) { + int i, j, index, offset, length; + int tempArray[]; + + // the SOI marker + byte[] SOI = {(byte) 0xFF, (byte) 0xD8}; + WriteMarker(SOI, out); + + // The order of the following headers is quiet inconsequential. + // the JFIF header + byte JFIF[] = new byte[18]; + JFIF[0] = (byte) 0xff; + JFIF[1] = (byte) 0xe0; + JFIF[2] = (byte) 0x00; + JFIF[3] = (byte) 0x10; + JFIF[4] = (byte) 0x4a; + JFIF[5] = (byte) 0x46; + JFIF[6] = (byte) 0x49; + JFIF[7] = (byte) 0x46; + JFIF[8] = (byte) 0x00; + JFIF[9] = (byte) 0x01; + JFIF[10] = (byte) 0x00; + JFIF[11] = (byte) 0x00; + JFIF[12] = (byte) 0x00; + JFIF[13] = (byte) 0x01; + JFIF[14] = (byte) 0x00; + JFIF[15] = (byte) 0x01; + JFIF[16] = (byte) 0x00; + JFIF[17] = (byte) 0x00; + WriteArray(JFIF, out); + + // Comment Header + String comment = new String(); + comment = JpegObj.getComment(); + length = comment.length(); + byte COM[] = new byte[length + 4]; + COM[0] = (byte) 0xFF; + COM[1] = (byte) 0xFE; + COM[2] = (byte) ((length >> 8) & 0xFF); + COM[3] = (byte) (length & 0xFF); + java.lang.System.arraycopy(JpegObj.Comment.getBytes(), 0, + COM, 4, JpegObj.Comment.length()); + WriteArray(COM, out); + + // The DQT header + // 0 is the luminance index and 1 is the chrominance index + byte DQT[] = new byte[134]; + DQT[0] = (byte) 0xFF; + DQT[1] = (byte) 0xDB; + DQT[2] = (byte) 0x00; + DQT[3] = (byte) 0x84; + offset = 4; + for (i = 0; i < 2; i++) { + DQT[offset++] = (byte) ((0 << 4) + i); + tempArray = (int[]) dct.quantum[i]; + for (j = 0; j < 64; j++) { + DQT[offset++] = (byte) tempArray[jpegNaturalOrder[j]]; + } + } + WriteArray(DQT, out); + + // Start of Frame Header + byte SOF[] = new byte[19]; + SOF[0] = (byte) 0xFF; + SOF[1] = (byte) 0xC0; + SOF[2] = (byte) 0x00; + SOF[3] = (byte) 17; + SOF[4] = (byte) JpegObj.Precision; + SOF[5] = (byte) ((JpegObj.imageHeight >> 8) & 0xFF); + SOF[6] = (byte) ((JpegObj.imageHeight) & 0xFF); + SOF[7] = (byte) ((JpegObj.imageWidth >> 8) & 0xFF); + SOF[8] = (byte) ((JpegObj.imageWidth) & 0xFF); + SOF[9] = (byte) JpegObj.NumberOfComponents; + index = 10; + for (i = 0; i < SOF[9]; i++) { + SOF[index++] = (byte) JpegObj.CompID[i]; + SOF[index++] = (byte) ((JpegObj.HsampFactor[i] << 4) + JpegObj.VsampFactor[i]); + SOF[index++] = (byte) JpegObj.QtableNumber[i]; + } + WriteArray(SOF, out); + + // The DHT Header + byte DHT1[], DHT2[], DHT3[], DHT4[]; + int bytes, temp, oldindex, intermediateindex; + length = 2; + index = 4; + oldindex = 4; + DHT1 = new byte[17]; + DHT4 = new byte[4]; + DHT4[0] = (byte) 0xFF; + DHT4[1] = (byte) 0xC4; + for (i = 0; i < 4; i++ ) { + bytes = 0; + DHT1[index++ - oldindex] = (byte) ((int[]) Huf.bits.elementAt(i))[0]; + for (j = 1; j < 17; j++) { + temp = ((int[]) Huf.bits.elementAt(i))[j]; + DHT1[index++ - oldindex] =(byte) temp; + bytes += temp; + } + intermediateindex = index; + DHT2 = new byte[bytes]; + for (j = 0; j < bytes; j++) { + DHT2[index++ - intermediateindex] = (byte) ((int[]) Huf.val.elementAt(i))[j]; + } + DHT3 = new byte[index]; + java.lang.System.arraycopy(DHT4, 0, DHT3, 0, oldindex); + java.lang.System.arraycopy(DHT1, 0, DHT3, oldindex, 17); + java.lang.System.arraycopy(DHT2, 0, DHT3, oldindex + 17, bytes); + DHT4 = DHT3; + oldindex = index; + } + DHT4[2] = (byte) (((index - 2) >> 8)& 0xFF); + DHT4[3] = (byte) ((index -2) & 0xFF); + WriteArray(DHT4, out); + + + // Start of Scan Header + byte SOS[] = new byte[14]; + SOS[0] = (byte) 0xFF; + SOS[1] = (byte) 0xDA; + SOS[2] = (byte) 0x00; + SOS[3] = (byte) 12; + SOS[4] = (byte) JpegObj.NumberOfComponents; + index = 5; + for (i = 0; i < SOS[4]; i++) { + SOS[index++] = (byte) JpegObj.CompID[i]; + SOS[index++] = (byte) ((JpegObj.DCtableNumber[i] << 4) + + JpegObj.ACtableNumber[i]); + } + SOS[index++] = (byte) JpegObj.Ss; + SOS[index++] = (byte) JpegObj.Se; + SOS[index++] = (byte) ((JpegObj.Ah << 4) + JpegObj.Al); + WriteArray(SOS, out); + + } + + void WriteMarker(byte[] data, BufferedOutputStream out) { + try { + out.write(data, 0, 2); + } catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + } + + void WriteArray(byte[] data, BufferedOutputStream out) { + int length; + try { + length = ((data[2] & 0xFF) << 8) + (data[3] & 0xFF) + 2; + out.write(data, 0, length); + } catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + } +} + +// This class incorporates quality scaling as implemented in the JPEG-6a +// library. + +/* + * DCT - A Java implementation of the Discreet Cosine Transform + */ + +class DCT +{ + /** + * DCT Block Size - default 8 + */ + public int N = 8; + + /** + * Image Quality (0-100) - default 80 (good image / good compression) + */ + public int QUALITY = 80; + + public Object quantum[] = new Object[2]; + public Object Divisors[] = new Object[2]; + + /** + * Quantitization Matrix for luminace. + */ + public int quantum_luminance[] = new int[N*N]; + public double DivisorsLuminance[] = new double[N*N]; + + /** + * Quantitization Matrix for chrominance. + */ + public int quantum_chrominance[] = new int[N*N]; + public double DivisorsChrominance[] = new double[N*N]; + + /** + * Constructs a new DCT object. Initializes the cosine transform matrix + * these are used when computing the DCT and it's inverse. This also + * initializes the run length counters and the ZigZag sequence. Note that + * the image quality can be worse than 25 however the image will be + * extemely pixelated, usually to a block size of N. + * + * @param QUALITY The quality of the image (0 worst - 100 best) + * + */ + public DCT(int QUALITY) + { + initMatrix(QUALITY); + } + + + /* + * This method sets up the quantization matrix for luminance and + * chrominance using the Quality parameter. + */ + private void initMatrix(int quality) + { + double[] AANscaleFactor = { 1.0, 1.387039845, 1.306562965, 1.175875602, + 1.0, 0.785694958, 0.541196100, 0.275899379}; + int i; + int j; + int index; + int Quality; + int temp; + + // converting quality setting to that specified in the jpeg_quality_scaling + // method in the IJG Jpeg-6a C libraries + + Quality = quality; + if (Quality <= 0) + Quality = 1; + if (Quality > 100) + Quality = 100; + if (Quality < 50) + Quality = 5000 / Quality; + else + Quality = 200 - Quality * 2; + + // Creating the luminance matrix + + quantum_luminance[0]=16; + quantum_luminance[1]=11; + quantum_luminance[2]=10; + quantum_luminance[3]=16; + quantum_luminance[4]=24; + quantum_luminance[5]=40; + quantum_luminance[6]=51; + quantum_luminance[7]=61; + quantum_luminance[8]=12; + quantum_luminance[9]=12; + quantum_luminance[10]=14; + quantum_luminance[11]=19; + quantum_luminance[12]=26; + quantum_luminance[13]=58; + quantum_luminance[14]=60; + quantum_luminance[15]=55; + quantum_luminance[16]=14; + quantum_luminance[17]=13; + quantum_luminance[18]=16; + quantum_luminance[19]=24; + quantum_luminance[20]=40; + quantum_luminance[21]=57; + quantum_luminance[22]=69; + quantum_luminance[23]=56; + quantum_luminance[24]=14; + quantum_luminance[25]=17; + quantum_luminance[26]=22; + quantum_luminance[27]=29; + quantum_luminance[28]=51; + quantum_luminance[29]=87; + quantum_luminance[30]=80; + quantum_luminance[31]=62; + quantum_luminance[32]=18; + quantum_luminance[33]=22; + quantum_luminance[34]=37; + quantum_luminance[35]=56; + quantum_luminance[36]=68; + quantum_luminance[37]=109; + quantum_luminance[38]=103; + quantum_luminance[39]=77; + quantum_luminance[40]=24; + quantum_luminance[41]=35; + quantum_luminance[42]=55; + quantum_luminance[43]=64; + quantum_luminance[44]=81; + quantum_luminance[45]=104; + quantum_luminance[46]=113; + quantum_luminance[47]=92; + quantum_luminance[48]=49; + quantum_luminance[49]=64; + quantum_luminance[50]=78; + quantum_luminance[51]=87; + quantum_luminance[52]=103; + quantum_luminance[53]=121; + quantum_luminance[54]=120; + quantum_luminance[55]=101; + quantum_luminance[56]=72; + quantum_luminance[57]=92; + quantum_luminance[58]=95; + quantum_luminance[59]=98; + quantum_luminance[60]=112; + quantum_luminance[61]=100; + quantum_luminance[62]=103; + quantum_luminance[63]=99; + + for (j = 0; j < 64; j++) + { + temp = (quantum_luminance[j] * Quality + 50) / 100; + if ( temp <= 0) temp = 1; + if (temp > 255) temp = 255; + quantum_luminance[j] = temp; + } + index = 0; + for (i = 0; i < 8; i++) { + for (j = 0; j < 8; j++) { + // The divisors for the LL&M method (the slow integer method used in + // jpeg 6a library). This method is currently (04/04/98) incompletely + // implemented. + // DivisorsLuminance[index] = ((double) quantum_luminance[index]) << 3; + // The divisors for the AAN method (the float method used in jpeg 6a library. + DivisorsLuminance[index] = (1.0/(quantum_luminance[index] * AANscaleFactor[i] * AANscaleFactor[j] * 8.0)); + index++; + } + } + + + // Creating the chrominance matrix + + quantum_chrominance[0]=17; + quantum_chrominance[1]=18; + quantum_chrominance[2]=24; + quantum_chrominance[3]=47; + quantum_chrominance[4]=99; + quantum_chrominance[5]=99; + quantum_chrominance[6]=99; + quantum_chrominance[7]=99; + quantum_chrominance[8]=18; + quantum_chrominance[9]=21; + quantum_chrominance[10]=26; + quantum_chrominance[11]=66; + quantum_chrominance[12]=99; + quantum_chrominance[13]=99; + quantum_chrominance[14]=99; + quantum_chrominance[15]=99; + quantum_chrominance[16]=24; + quantum_chrominance[17]=26; + quantum_chrominance[18]=56; + quantum_chrominance[19]=99; + quantum_chrominance[20]=99; + quantum_chrominance[21]=99; + quantum_chrominance[22]=99; + quantum_chrominance[23]=99; + quantum_chrominance[24]=47; + quantum_chrominance[25]=66; + quantum_chrominance[26]=99; + quantum_chrominance[27]=99; + quantum_chrominance[28]=99; + quantum_chrominance[29]=99; + quantum_chrominance[30]=99; + quantum_chrominance[31]=99; + quantum_chrominance[32]=99; + quantum_chrominance[33]=99; + quantum_chrominance[34]=99; + quantum_chrominance[35]=99; + quantum_chrominance[36]=99; + quantum_chrominance[37]=99; + quantum_chrominance[38]=99; + quantum_chrominance[39]=99; + quantum_chrominance[40]=99; + quantum_chrominance[41]=99; + quantum_chrominance[42]=99; + quantum_chrominance[43]=99; + quantum_chrominance[44]=99; + quantum_chrominance[45]=99; + quantum_chrominance[46]=99; + quantum_chrominance[47]=99; + quantum_chrominance[48]=99; + quantum_chrominance[49]=99; + quantum_chrominance[50]=99; + quantum_chrominance[51]=99; + quantum_chrominance[52]=99; + quantum_chrominance[53]=99; + quantum_chrominance[54]=99; + quantum_chrominance[55]=99; + quantum_chrominance[56]=99; + quantum_chrominance[57]=99; + quantum_chrominance[58]=99; + quantum_chrominance[59]=99; + quantum_chrominance[60]=99; + quantum_chrominance[61]=99; + quantum_chrominance[62]=99; + quantum_chrominance[63]=99; + + for (j = 0; j < 64; j++) + { + temp = (quantum_chrominance[j] * Quality + 50) / 100; + if ( temp <= 0) temp = 1; + if (temp >= 255) temp = 255; + quantum_chrominance[j] = temp; + } + index = 0; + for (i = 0; i < 8; i++) { + for (j = 0; j < 8; j++) { + // The divisors for the LL&M method (the slow integer method used in + // jpeg 6a library). This method is currently (04/04/98) incompletely + // implemented. + // DivisorsChrominance[index] = ((double) quantum_chrominance[index]) << 3; + // The divisors for the AAN method (the float method used in jpeg 6a library. + DivisorsChrominance[index] = 1.0 / ( + quantum_chrominance[index] * AANscaleFactor[i] * AANscaleFactor[j] * 8.0 + ); + index++; + } + } + + // quantum and Divisors are objects used to hold the appropriate matices + + quantum[0] = quantum_luminance; + Divisors[0] = DivisorsLuminance; + quantum[1] = quantum_chrominance; + Divisors[1] = DivisorsChrominance; + + + } + + /* + * This method preforms forward DCT on a block of image data using + * the literal method specified for a 2-D Discrete Cosine Transform. + * It is included as a curiosity and can give you an idea of the + * difference in the compression result (the resulting image quality) + * by comparing its output to the output of the AAN method below. + * It is ridiculously inefficient. + */ + + // For now the final output is unusable. The associated quantization step + // needs some tweaking. If you get this part working, please let me know. + + public double[][] forwardDCTExtreme(float input[][]) + { + double output[][] = new double[N][N]; + int v, u, x, y; + for (v = 0; v < 8; v++) { + for (u = 0; u < 8; u++) { + for (x = 0; x < 8; x++) { + for (y = 0; y < 8; y++) { + output[v][u] += input[x][y] * + Math.cos(((double)(2*x + 1)*(double)u*Math.PI)/16)* + Math.cos(((double)(2*y + 1)*(double)v*Math.PI)/16); + } + } + output[v][u] *= (0.25)*((u == 0) ? (1.0/Math.sqrt(2)) : (double) 1.0)*((v == 0) ? (1.0/Math.sqrt(2)) : (double) 1.0); + } + } + return output; + } + + + /* + * This method preforms a DCT on a block of image data using the AAN + * method as implemented in the IJG Jpeg-6a library. + */ + public double[][] forwardDCT(float input[][]) + { + double output[][] = new double[N][N]; + double tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; + double tmp10, tmp11, tmp12, tmp13; + double z1, z2, z3, z4, z5, z11, z13; + int i; + int j; + + // Subtracts 128 from the input values + for (i = 0; i < 8; i++) { + for(j = 0; j < 8; j++) { + output[i][j] = (input[i][j] - 128.0); + // input[i][j] -= 128; + + } + } + + for (i = 0; i < 8; i++) { + tmp0 = output[i][0] + output[i][7]; + tmp7 = output[i][0] - output[i][7]; + tmp1 = output[i][1] + output[i][6]; + tmp6 = output[i][1] - output[i][6]; + tmp2 = output[i][2] + output[i][5]; + tmp5 = output[i][2] - output[i][5]; + tmp3 = output[i][3] + output[i][4]; + tmp4 = output[i][3] - output[i][4]; + + tmp10 = tmp0 + tmp3; + tmp13 = tmp0 - tmp3; + tmp11 = tmp1 + tmp2; + tmp12 = tmp1 - tmp2; + + output[i][0] = tmp10 + tmp11; + output[i][4] = tmp10 - tmp11; + + z1 = (tmp12 + tmp13) * 0.707106781; + output[i][2] = tmp13 + z1; + output[i][6] = tmp13 - z1; + + tmp10 = tmp4 + tmp5; + tmp11 = tmp5 + tmp6; + tmp12 = tmp6 + tmp7; + + z5 = (tmp10 - tmp12) * 0.382683433; + z2 = 0.541196100 * tmp10 + z5; + z4 = 1.306562965 * tmp12 + z5; + z3 = tmp11 * 0.707106781; + + z11 = tmp7 + z3; + z13 = tmp7 - z3; + + output[i][5] = z13 + z2; + output[i][3] = z13 - z2; + output[i][1] = z11 + z4; + output[i][7] = z11 - z4; + } + + for (i = 0; i < 8; i++) { + tmp0 = output[0][i] + output[7][i]; + tmp7 = output[0][i] - output[7][i]; + tmp1 = output[1][i] + output[6][i]; + tmp6 = output[1][i] - output[6][i]; + tmp2 = output[2][i] + output[5][i]; + tmp5 = output[2][i] - output[5][i]; + tmp3 = output[3][i] + output[4][i]; + tmp4 = output[3][i] - output[4][i]; + + tmp10 = tmp0 + tmp3; + tmp13 = tmp0 - tmp3; + tmp11 = tmp1 + tmp2; + tmp12 = tmp1 - tmp2; + + output[0][i] = tmp10 + tmp11; + output[4][i] = tmp10 - tmp11; + + z1 = (tmp12 + tmp13) * 0.707106781; + output[2][i] = tmp13 + z1; + output[6][i] = tmp13 - z1; + + tmp10 = tmp4 + tmp5; + tmp11 = tmp5 + tmp6; + tmp12 = tmp6 + tmp7; + + z5 = (tmp10 - tmp12) * 0.382683433; + z2 = 0.541196100 * tmp10 + z5; + z4 = 1.306562965 * tmp12 + z5; + z3 = tmp11 * 0.707106781; + + z11 = tmp7 + z3; + z13 = tmp7 - z3; + + output[5][i] = z13 + z2; + output[3][i] = z13 - z2; + output[1][i] = z11 + z4; + output[7][i] = z11 - z4; + } + + return output; + } + + /* + * This method quantitizes data and rounds it to the nearest integer. + */ + public int[] quantizeBlock(double inputData[][], int code) + { + int outputData[] = new int[N*N]; + int i, j; + int index; + index = 0; + for (i = 0; i < 8; i++) { + for (j = 0; j < 8; j++) { + // The second line results in significantly better compression. + outputData[index] = (int)(Math.round(inputData[i][j] * (((double[]) (Divisors[code]))[index]))); + // outputData[index] = (int)(((inputData[i][j] * (((double[]) (Divisors[code]))[index])) + 16384.5) -16384); + index++; + } + } + + return outputData; + } + + /* + * This is the method for quantizing a block DCT'ed with forwardDCTExtreme + * This method quantitizes data and rounds it to the nearest integer. + */ + public int[] quantizeBlockExtreme(double inputData[][], int code) + { + int outputData[] = new int[N*N]; + int i, j; + int index; + index = 0; + for (i = 0; i < 8; i++) { + for (j = 0; j < 8; j++) { + outputData[index] = (int)(Math.round(inputData[i][j] / (((int[]) (quantum[code]))[index]))); + index++; + } + } + + return outputData; + } +} + +// This class was modified by James R. Weeks on 3/27/98. +// It now incorporates Huffman table derivation as in the C jpeg library +// from the IJG, Jpeg-6a. + +class Huffman +{ + int bufferPutBits, bufferPutBuffer; + public int ImageHeight; + public int ImageWidth; + public int DC_matrix0[][]; + public int AC_matrix0[][]; + public int DC_matrix1[][]; + public int AC_matrix1[][]; + public Object DC_matrix[]; + public Object AC_matrix[]; + public int code; + public int NumOfDCTables; + public int NumOfACTables; + public int[] bitsDCluminance = { 0x00, 0, 1, 5, 1, 1,1,1,1,1,0,0,0,0,0,0,0}; + public int[] valDCluminance = { 0,1,2,3,4,5,6,7,8,9,10,11 }; + public int[] bitsDCchrominance = { 0x01,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0 }; + public int[] valDCchrominance = { 0,1,2,3,4,5,6,7,8,9,10,11 }; + public int[] bitsACluminance = {0x10,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d }; + public int[] valACluminance = + { 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, + 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, + 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, + 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, + 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, + 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, + 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, + 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2, + 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, + 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, + 0xf9, 0xfa }; + public int[] bitsACchrominance = { 0x11,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77 }; + public int[] valACchrominance = + { 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, + 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, + 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, + 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, + 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, + 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, + 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, + 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, + 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, + 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, + 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, + 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, + 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, + 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, + 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, + 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, + 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, + 0xf9, 0xfa }; + public Vector bits; + public Vector val; + + /* + * jpegNaturalOrder[i] is the natural-order position of the i'th element + * of zigzag order. + */ + public static int[] jpegNaturalOrder = { + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + }; + /* + * The Huffman class constructor + */ + public Huffman(int Width,int Height) + { + + bits = new Vector(); + bits.addElement(bitsDCluminance); + bits.addElement(bitsACluminance); + bits.addElement(bitsDCchrominance); + bits.addElement(bitsACchrominance); + val = new Vector(); + val.addElement(valDCluminance); + val.addElement(valACluminance); + val.addElement(valDCchrominance); + val.addElement(valACchrominance); + initHuf(); + ImageWidth=Width; + ImageHeight=Height; + + } + + /** + * HuffmanBlockEncoder run length encodes and Huffman encodes the quantized + * data. + * @param outStream + * @param zigzag + * @param prec + * @param DCcode + * @param ACcode + **/ + + public void HuffmanBlockEncoder(BufferedOutputStream outStream, int zigzag[], int prec, int DCcode, int ACcode) + { + int temp, temp2, nbits, k, r, i; + + NumOfDCTables = 2; + NumOfACTables = 2; + + // The DC portion + + temp = temp2 = zigzag[0] - prec; + if(temp < 0) { + temp = -temp; + temp2--; + } + nbits = 0; + while (temp != 0) { + nbits++; + temp >>= 1; + } + // if (nbits > 11) nbits = 11; + bufferIt(outStream, ((int[][])DC_matrix[DCcode])[nbits][0], ((int[][])DC_matrix[DCcode])[nbits][1]); + // The arguments in bufferIt are code and size. + if (nbits != 0) { + bufferIt(outStream, temp2, nbits); + } + + // The AC portion + + r = 0; + + for (k = 1; k < 64; k++) { + if ((temp = zigzag[jpegNaturalOrder[k]]) == 0) { + r++; + } + else { + while (r > 15) { + bufferIt(outStream, ((int[][])AC_matrix[ACcode])[0xF0][0], ((int[][])AC_matrix[ACcode])[0xF0][1]); + r -= 16; + } + temp2 = temp; + if (temp < 0) { + temp = -temp; + temp2--; + } + nbits = 1; + while ((temp >>= 1) != 0) { + nbits++; + } + i = (r << 4) + nbits; + bufferIt(outStream, ((int[][])AC_matrix[ACcode])[i][0], ((int[][])AC_matrix[ACcode])[i][1]); + bufferIt(outStream, temp2, nbits); + + r = 0; + } + } + + if (r > 0) { + bufferIt(outStream, ((int[][])AC_matrix[ACcode])[0][0], ((int[][])AC_matrix[ACcode])[0][1]); + } + + } + + // Uses an integer long (32 bits) buffer to store the Huffman encoded bits + // and sends them to outStream by the byte. + + void bufferIt(BufferedOutputStream outStream, int code,int size) + { + int PutBuffer = code; + int PutBits = bufferPutBits; + + PutBuffer &= (1 << size) - 1; + PutBits += size; + PutBuffer <<= 24 - PutBits; + PutBuffer |= bufferPutBuffer; + + while(PutBits >= 8) { + int c = ((PutBuffer >> 16) & 0xFF); + try + { + outStream.write(c); + } + catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + if (c == 0xFF) { + try + { + outStream.write(0); + } + catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + } + PutBuffer <<= 8; + PutBits -= 8; + } + bufferPutBuffer = PutBuffer; + bufferPutBits = PutBits; + + } + + void flushBuffer(BufferedOutputStream outStream) { + int PutBuffer = bufferPutBuffer; + int PutBits = bufferPutBits; + while (PutBits >= 8) { + int c = ((PutBuffer >> 16) & 0xFF); + try + { + outStream.write(c); + } + catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + if (c == 0xFF) { + try { + outStream.write(0); + } + catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + } + PutBuffer <<= 8; + PutBits -= 8; + } + if (PutBits > 0) { + int c = ((PutBuffer >> 16) & 0xFF); + try + { + outStream.write(c); + } + catch (IOException e) { + System.out.println("IO Error: " + e.getMessage()); + } + } + } + + /* + * Initialisation of the Huffman codes for Luminance and Chrominance. + * This code results in the same tables created in the IJG Jpeg-6a + * library. + */ + + public void initHuf() + { + DC_matrix0=new int[12][2]; + DC_matrix1=new int[12][2]; + AC_matrix0=new int[255][2]; + AC_matrix1=new int[255][2]; + DC_matrix = new Object[2]; + AC_matrix = new Object[2]; + int p, l, i, lastp, si, code; + int[] huffsize = new int[257]; + int[] huffcode= new int[257]; + + /* + * init of the DC values for the chrominance + * [][0] is the code [][1] is the number of bit + */ + + p = 0; + for (l = 1; l <= 16; l++) + { + for (i = 1; i <= bitsDCchrominance[l]; i++) + { + huffsize[p++] = l; + } + } + huffsize[p] = 0; + lastp = p; + + code = 0; + si = huffsize[0]; + p = 0; + while(huffsize[p] != 0) + { + while(huffsize[p] == si) + { + huffcode[p++] = code; + code++; + } + code <<= 1; + si++; + } + + for (p = 0; p < lastp; p++) + { + DC_matrix1[valDCchrominance[p]][0] = huffcode[p]; + DC_matrix1[valDCchrominance[p]][1] = huffsize[p]; + } + + /* + * Init of the AC hufmann code for the chrominance + * matrix [][][0] is the code & matrix[][][1] is the number of bit needed + */ + + p = 0; + for (l = 1; l <= 16; l++) + { + for (i = 1; i <= bitsACchrominance[l]; i++) + { + huffsize[p++] = l; + } + } + huffsize[p] = 0; + lastp = p; + + code = 0; + si = huffsize[0]; + p = 0; + while(huffsize[p] != 0) + { + while(huffsize[p] == si) + { + huffcode[p++] = code; + code++; + } + code <<= 1; + si++; + } + + for (p = 0; p < lastp; p++) + { + AC_matrix1[valACchrominance[p]][0] = huffcode[p]; + AC_matrix1[valACchrominance[p]][1] = huffsize[p]; + } + + /* + * init of the DC values for the luminance + * [][0] is the code [][1] is the number of bit + */ + p = 0; + for (l = 1; l <= 16; l++) + { + for (i = 1; i <= bitsDCluminance[l]; i++) + { + huffsize[p++] = l; + } + } + huffsize[p] = 0; + lastp = p; + + code = 0; + si = huffsize[0]; + p = 0; + while(huffsize[p] != 0) + { + while(huffsize[p] == si) + { + huffcode[p++] = code; + code++; + } + code <<= 1; + si++; + } + + for (p = 0; p < lastp; p++) + { + DC_matrix0[valDCluminance[p]][0] = huffcode[p]; + DC_matrix0[valDCluminance[p]][1] = huffsize[p]; + } + + /* + * Init of the AC hufmann code for luminance + * matrix [][][0] is the code & matrix[][][1] is the number of bit + */ + + p = 0; + for (l = 1; l <= 16; l++) + { + for (i = 1; i <= bitsACluminance[l]; i++) + { + huffsize[p++] = l; + } + } + huffsize[p] = 0; + lastp = p; + + code = 0; + si = huffsize[0]; + p = 0; + while(huffsize[p] != 0) + { + while(huffsize[p] == si) + { + huffcode[p++] = code; + code++; + } + code <<= 1; + si++; + } + for (int q = 0; q < lastp; q++) + { + AC_matrix0[valACluminance[q]][0] = huffcode[q]; + AC_matrix0[valACluminance[q]][1] = huffsize[q]; + } + + DC_matrix[0] = DC_matrix0; + DC_matrix[1] = DC_matrix1; + AC_matrix[0] = AC_matrix0; + AC_matrix[1] = AC_matrix1; + } + +} + +/* + * JpegInfo - Given an image, sets default information about it and divides + * it into its constituant components, downsizing those that need to be. + */ + +class JpegInfo +{ + String Comment; + public Image imageobj; + public int imageHeight; + public int imageWidth; + public int BlockWidth[]; + public int BlockHeight[]; + + // the following are set as the default + public int Precision = 8; + public int NumberOfComponents = 3; + public Object Components[]; + public int[] CompID = {1, 2, 3}; + public int[] HsampFactor = {1, 1, 1}; + public int[] VsampFactor = {1, 1, 1}; + public int[] QtableNumber = {0, 1, 1}; + public int[] DCtableNumber = {0, 1, 1}; + public int[] ACtableNumber = {0, 1, 1}; + public boolean[] lastColumnIsDummy = {false, false, false}; + public boolean[] lastRowIsDummy = {false, false, false}; + public int Ss = 0; + public int Se = 63; + public int Ah = 0; + public int Al = 0; + public int compWidth[], compHeight[]; + public int MaxHsampFactor; + public int MaxVsampFactor; + + + public JpegInfo(Image image) + { + Components = new Object[NumberOfComponents]; + compWidth = new int[NumberOfComponents]; + compHeight = new int[NumberOfComponents]; + BlockWidth = new int[NumberOfComponents]; + BlockHeight = new int[NumberOfComponents]; + imageobj = image; + imageWidth = image.getWidth(null); + imageHeight = image.getHeight(null); + Comment = "JPEG Encoder Copyright 1998, James R. Weeks and BioElectroMech. "; + getYCCArray(); + } + + public void setComment(String comment) { + Comment.concat(comment); + } + + public String getComment() { + return Comment; + } + + /* + * This method creates and fills three arrays, Y, Cb, and Cr using the + * input image. + */ + + private void getYCCArray() + { + int values[] = new int[imageWidth * imageHeight]; + int r, g, b, y, x; + // In order to minimize the chance that grabPixels will throw an exception + // it may be necessary to grab some pixels every few scanlines and process + // those before going for more. The time expense may be prohibitive. + // However, for a situation where memory overhead is a concern, this may be + // the only choice. + PixelGrabber grabber = + new PixelGrabber(imageobj.getSource(), 0, 0, imageWidth, imageHeight, + values, 0, imageWidth); + MaxHsampFactor = 1; + MaxVsampFactor = 1; + for (y = 0; y < NumberOfComponents; y++) { + MaxHsampFactor = Math.max(MaxHsampFactor, HsampFactor[y]); + MaxVsampFactor = Math.max(MaxVsampFactor, VsampFactor[y]); + } + for (y = 0; y < NumberOfComponents; y++) { + compWidth[y] = (((imageWidth%8 != 0) ? ((int) Math.ceil(imageWidth/8.0))*8 : imageWidth)/MaxHsampFactor)*HsampFactor[y]; + if (compWidth[y] != ((imageWidth/MaxHsampFactor)*HsampFactor[y])) { + lastColumnIsDummy[y] = true; + } + // results in a multiple of 8 for compWidth + // this will make the rest of the program fail for the unlikely + // event that someone tries to compress an 16 x 16 pixel image + // which would of course be worse than pointless + BlockWidth[y] = (int) Math.ceil(compWidth[y]/8.0); + compHeight[y] = (((imageHeight%8 != 0) ? ((int) Math.ceil(imageHeight/8.0))*8: imageHeight)/MaxVsampFactor)*VsampFactor[y]; + if (compHeight[y] != ((imageHeight/MaxVsampFactor)*VsampFactor[y])) { + lastRowIsDummy[y] = true; + } + BlockHeight[y] = (int) Math.ceil(compHeight[y]/8.0); + } + try + { + if(grabber.grabPixels() != true) + { + try + { + throw new AWTException("Grabber returned false: " + grabber.status()); + } + catch (Exception e) {} + } + } + catch (InterruptedException e) {} + float Y[][] = new float[compHeight[0]][compWidth[0]]; + float Cr1[][] = new float[compHeight[0]][compWidth[0]]; + float Cb1[][] = new float[compHeight[0]][compWidth[0]]; + //float Cb2[][] = new float[compHeight[1]][compWidth[1]]; + //float Cr2[][] = new float[compHeight[2]][compWidth[2]]; + int index = 0; + for (y = 0; y < imageHeight; ++y) + { + for (x = 0; x < imageWidth; ++x) + { + r = ((values[index] >> 16) & 0xff); + g = ((values[index] >> 8) & 0xff); + b = (values[index] & 0xff); + + // The following three lines are a more correct color conversion but + // the current conversion technique is sufficient and results in a higher + // compression rate. + // Y[y][x] = 16 + (float)(0.8588*(0.299 * (float)r + 0.587 * (float)g + 0.114 * (float)b )); + // Cb1[y][x] = 128 + (float)(0.8784*(-0.16874 * (float)r - 0.33126 * (float)g + 0.5 * (float)b)); + // Cr1[y][x] = 128 + (float)(0.8784*(0.5 * (float)r - 0.41869 * (float)g - 0.08131 * (float)b)); + Y[y][x] = (float)((0.299 * r + 0.587 * g + 0.114 * b)); + Cb1[y][x] = 128 + (float)((-0.16874 * r - 0.33126 * g + 0.5 * b)); + Cr1[y][x] = 128 + (float)((0.5 * r - 0.41869 * g - 0.08131 * b)); + index++; + } + } + + // Need a way to set the H and V sample factors before allowing downsampling. + // For now (04/04/98) downsampling must be hard coded. + // Until a better downsampler is implemented, this will not be done. + // Downsampling is currently supported. The downsampling method here + // is a simple box filter. + + Components[0] = Y; + // Cb2 = DownSample(Cb1, 1); + Components[1] = Cb1; + // Cr2 = DownSample(Cr1, 2); + Components[2] = Cr1; + } + + float[][] DownSample(float[][] C, int comp) + { + int inrow, incol; + int outrow, outcol; + float output[][]; + int bias; + inrow = 0; + incol = 0; + output = new float[compHeight[comp]][compWidth[comp]]; + for (outrow = 0; outrow < compHeight[comp]; outrow++) { + bias = 1; + for (outcol = 0; outcol < compWidth[comp]; outcol++) { + output[outrow][outcol] = (C[inrow][incol++] + C[inrow++][incol--] + + C[inrow][incol++] + C[inrow--][incol++] + bias)/(float)4.0; + bias ^= 3; + } + inrow += 2; + incol = 0; + } + return output; + } +} Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -883,6 +883,7 @@ stack[sp++] = viewer.getAtomBits("SpecSeqcodeRange", new int[] { seqcodeA, seqcodeB }); break; + case Token.spec_chain: stack[sp++] = viewer.getAtomBits("SpecChain", instruction.intValue); break; @@ -1064,8 +1065,11 @@ if (propertyValue < 0) continue; break; + case Token.translation: + propertyValue = frame.getTranslation(atom.atomIndex); + break; case Token.surfacedistance: - if (viewer.getFrame().getSurfaceDistanceMax() == 0) + if (frame.getSurfaceDistanceMax() == 0) dots(statementLength, Dots.DOTS_MODE_CALCONLY); propertyValue = atom.getSurfaceDistance(); if (propertyValue < 0) Modified: trunk/Jmol/src/org/jmol/viewer/Frame.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -61,6 +61,8 @@ float maxBondingRadius = Float.MIN_VALUE; float maxVanderwaalsRadius = Float.MIN_VALUE; CellInfo[] cellInfos; + Vector latticeKey; + boolean haveLatticeKey; int atomCount; public Atom[] atoms; @@ -1982,6 +1984,7 @@ return bs; } + BitSet getHydrogenSet() { BitSet bsHydrogen = new BitSet(); for (int i = atomCount; --i >= 0;) { @@ -2313,6 +2316,18 @@ return surfaceDistances[atomIndex]; } + int getTranslation(int atomIndex) { + if (!haveLatticeKey) { + latticeKey = (Vector) getModelSetAuxiliaryInfo("latticeKey"); + haveLatticeKey = true; + } + if (latticeKey == null) + return 0; + Integer i = (Integer) latticeKey.get(atomIndex); + return (i == null ? 0 : i.intValue()); + } + + float surfaceDistanceMax; float getSurfaceDistanceMax() { if (surfaceDistances == null) @@ -2500,6 +2515,7 @@ //////////////////////////////////////////////////////////////// + BitSet getMoleculeBitSet(int atomIndex) { if (moleculeCount == 0) getMolecules(); Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -43,7 +43,7 @@ // for now, just update this by hand // perhaps use ant filter later ... but mth doesn't like it :-( public final static String copyright = "(C) 2006 Jmol Development"; - public final static String version = "10.9.70"; + public final static String version = "10.9.71"; //isosurface speed; getProperty "image"; experimentation with "select translation" not ready for users public final static String cvsDate = "$Date$"; public final static String date = cvsDate.substring(7, 23); Modified: trunk/Jmol/src/org/jmol/viewer/PropertyManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -25,12 +25,14 @@ //import org.jmol.util.Logger; + import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; import javax.vecmath.Matrix3f; import javax.vecmath.Point3f; import javax.vecmath.Vector3f; + import org.jmol.util.Logger; /** @@ -83,6 +85,7 @@ "boundBoxInfo" , "", "", "dataInfo" , "<data type>", "types", + "image" , "", "", }; final static int PROP_APPLET_INFO = 0; @@ -117,7 +120,8 @@ final static int PROP_BOUNDBOX_INFO = 25; final static int PROP_DATA_INFO = 26; - final static int PROP_COUNT = 27; + final static int PROP_IMAGE = 27; + final static int PROP_COUNT = 28; int getPropertyNumber(String infoType) { if (infoType == null) @@ -147,7 +151,7 @@ } final static String[] readableTypes = { - "extractmodel", "filecontents", "fileheader"}; + "extractmodel", "filecontents", "fileheader", "image"}; boolean isReadableAsString(String infoType) { for (int i = readableTypes.length; --i >= 0; ) @@ -236,6 +240,8 @@ return viewer.getMatrixRotate(); case PROP_DATA_INFO: return viewer.getData(myParam); + case PROP_IMAGE: + return viewer.getJpegBase64(100); } String info = "getProperty ERROR\n" + infoType + "?\nOptions include:\n"; for (int i = 0; i < PROP_COUNT; i++) { Modified: trunk/Jmol/src/org/jmol/viewer/Token.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -259,7 +259,7 @@ final static int atom = showparam | 6; final static int sequence = showparam | 7 | expression; final static int symmetry = showparam | 8 | expression | predefinedset; - final static int translation = showparam | 9; + final static int translation = showparam | 9 | atomproperty; // chime show parameters final static int residue = showparam | 10; final static int url = showparam | 11; @@ -325,19 +325,18 @@ final static int resno = atomproperty | 2; final static int radius = atomproperty | 3 | setparam; final static int temperature = atomproperty | 4; - final static int model = - atomproperty | 5 | showparam | expression | command; + final static int model = atomproperty | 5 | showparam | command; final static int _bondedcount = atomproperty | 6; final static int _groupID = atomproperty | 7; final static int _atomID = atomproperty | 8; final static int _structure = atomproperty | 9; final static int occupancy = atomproperty | 10; final static int polymerLength= atomproperty | 11; - final static int molecule = atomproperty | command | 12 | expression; - final static int cell = atomproperty | 13 | expression; - final static int site = atomproperty | 14 | expression; - final static int element = atomproperty | 15 | expression; - final static int symop = atomproperty | 16 | expression; + final static int molecule = atomproperty | command | 12; + final static int cell = atomproperty | 13; + final static int site = atomproperty | 14; + final static int element = atomproperty | 15; + final static int symop = atomproperty | 16; final static int surfacedistance = atomproperty | 17; Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -47,6 +47,7 @@ import javax.vecmath.Matrix3f; import javax.vecmath.AxisAngle4f; import java.net.URL; +import java.io.ByteArrayOutputStream; import java.io.Reader; /* @@ -2076,18 +2077,39 @@ public Image getScreenImage() { boolean antialias = true; + boolean isStereo = false; setRectClip(null); int stereoMode = getStereoMode(); switch (stereoMode) { + case JmolConstants.STEREO_DOUBLE: + // this allows for getting both eye views in two images + // because you can adjust using "stereo -2.5", then "stereo +2.5" + isStereo = true; + break; case JmolConstants.STEREO_REDCYAN: case JmolConstants.STEREO_REDBLUE: case JmolConstants.STEREO_REDGREEN: case JmolConstants.STEREO_CUSTOM: return getStereoImage(stereoMode, false); - } - return getImage(false, antialias); + } + return getImage(isStereo, antialias); } + /** + * @param quality + * @return base64-encoded version of the image + */ + public String getJpegBase64(int quality) { + Image eImage = getScreenImage(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + JpegEncoder jc = new JpegEncoder(eImage, quality, os); + jc.Compress(); + byte[] jpeg = os.toByteArray(); + releaseScreenImage(); + return "" + Base64.getBase64(jpeg); + } + + public void releaseScreenImage() { g3d.releaseScreenImage(); } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-03 19:11:38 UTC (rev 5809) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-03 19:35:56 UTC (rev 5810) @@ -28,6 +28,7 @@ import org.jmol.adapter.smarter.SmarterJmolAdapter; import org.jmol.popup.JmolPopup; import org.jmol.i18n.GT; +import org.jmol.util.*; //import org.openscience.cdk.applications.plugin.CDKPluginManager; import Acme.JPM.Encoders.PpmEncoder; @@ -36,7 +37,6 @@ import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfTemplate; import com.lowagie.text.pdf.PdfWriter; -import com.obrador.JpegEncoder; import java.awt.*; import java.awt.dnd.DropTarget; import java.awt.event.*; @@ -1582,56 +1582,6 @@ this.status = status; } - /** - * (maybe? -- untested) - * @param quality - * @return base64-encoded version of the image - */ - public String getJpegBase64(int quality) { - Image eImage = viewer.getScreenImage(); - ByteArrayOutputStream os = new ByteArrayOutputStream(); - JpegEncoder jc = new JpegEncoder(eImage, quality, os); - jc.Compress(); - byte[] jpeg = os.toByteArray(); - viewer.releaseScreenImage(); - return "" + getBase64(jpeg); - } - - static String base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - StringBuffer getBase64(byte[] bytes) { - long nBytes = bytes.length; - StringBuffer sout = new StringBuffer(); - if (nBytes == 0) - return sout; - for (int i = 0, nPad = 0; i < nBytes && nPad == 0;) { - if (false) { - sout.append( (char) bytes[i++]); - } else { - if (i % 75 == 0 && i != 0) - sout.append("\r\n"); - nPad = (i + 2 == nBytes ? 1 : i + 1 == nBytes ? 2 : 0); - int outbytes = (((int) (bytes[i++]) << 16) & 0xFF0000) - | ((nPad >= 1 ? 0 : (int) (bytes[i++]) << 8) & 0x00FF00) - | ((nPad == 2 ? 0 : (int) bytes[i++]) & 0x0000FF); - - sout.append(base64.charAt((outbytes >> 18) & 0x3F)); - - sout.append(base64.charAt((outbytes >> 12) & 0x3F)); - sout.append(nPad == 2 ? '=' : base64.charAt((outbytes >> 6) & 0x3F)); - sout.append(nPad >= 1 ? '=' : base64.charAt(outbytes & 0x3F)); - } - } - return sout; - } - - byte[] toBytes(StringBuffer sb) { - byte[] b = new byte[sb.length()]; - for (int i = sb.length(); --i >= 0;) - b[i] = (byte) sb.charAt(i); - return b; - } - - void clipImage() { Image eImage = viewer.getScreenImage(); ImageSelection.setClipboard(eImage); @@ -1661,8 +1611,8 @@ jc.Compress(); osb.flush(); osb.close(); - StringBuffer jpg = getBase64(osb.toByteArray()); - os.write(toBytes(jpg)); + StringBuffer jpg = Base64.getBase64(osb.toByteArray()); + os.write(Base64.toBytes(jpg)); } os.flush(); os.close(); This was sent by the SourceForge.net collaborative development platform,... [truncated message content] |
From: <ha...@us...> - 2006-10-04 16:09:39
|
Revision: 5823 http://svn.sourceforge.net/jmol/?rev=5823&view=rev Author: hansonr Date: 2006-10-04 09:09:27 -0700 (Wed, 04 Oct 2006) Log Message: ----------- bug fix for application (not applet) failure to remove references to viewer. also allows for no-mouse view-only interface with viewer.setModeMouse() Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java trunk/Jmol/src/org/jmol/viewer/MouseManager.java trunk/Jmol/src/org/jmol/viewer/MouseManager11.java trunk/Jmol/src/org/jmol/viewer/MouseManager14.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-10-04 15:26:23 UTC (rev 5822) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-10-04 16:09:27 UTC (rev 5823) @@ -69,6 +69,7 @@ public final static short MAR_DELETED = Short.MIN_VALUE; + public static final int MOUSE_NONE = -1; public static final int MOUSE_ROTATE = 0; public static final int MOUSE_ZOOM = 1; public static final int MOUSE_XLATE = 2; Modified: trunk/Jmol/src/org/jmol/viewer/MouseManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/MouseManager.java 2006-10-04 15:26:23 UTC (rev 5822) +++ trunk/Jmol/src/org/jmol/viewer/MouseManager.java 2006-10-04 16:09:27 UTC (rev 5823) @@ -61,6 +61,17 @@ hoverWatcherThread.start(); } + void removeMouseListeners11() {} + void removeMouseListeners14() {} + + void setModeMouse(int modeMouse) { + if (modeMouse == JmolConstants.MOUSE_NONE) { + hoverWatcherThread.interrupt(); + removeMouseListeners11(); + removeMouseListeners14(); + } + } + Rectangle getRubberBand() { if (!rubberbandSelectionMode) return null; Modified: trunk/Jmol/src/org/jmol/viewer/MouseManager11.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/MouseManager11.java 2006-10-04 15:26:23 UTC (rev 5822) +++ trunk/Jmol/src/org/jmol/viewer/MouseManager11.java 2006-10-04 16:09:27 UTC (rev 5823) @@ -40,6 +40,11 @@ display.addMouseMotionListener(this); } + void removeMouseListeners11() { + viewer.display.removeMouseListener(this); + viewer.display.removeMouseMotionListener(this); + } + boolean handleOldJvm10Event(Event e) { return false; } Modified: trunk/Jmol/src/org/jmol/viewer/MouseManager14.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/MouseManager14.java 2006-10-04 15:26:23 UTC (rev 5822) +++ trunk/Jmol/src/org/jmol/viewer/MouseManager14.java 2006-10-04 16:09:27 UTC (rev 5823) @@ -37,7 +37,11 @@ //Logger.debug("MouseManager14 implemented"); display.addMouseWheelListener(this); } - + + void removeMouseListeners14() { + viewer.display.removeMouseWheelListener(this); + } + public void mouseWheelMoved(MouseWheelEvent e) { mouseWheel(e.getWhen(), e.getWheelRotation(), e.getModifiers()); } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-04 15:26:23 UTC (rev 5822) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-04 16:09:27 UTC (rev 5823) @@ -143,7 +143,17 @@ fileManager = new FileManager(this, modelAdapter); repaintManager = new RepaintManager(this); } - + /** + * NOTE: for APPLICATION (not APPLET) call + * + * setModeMouse(JmolConstants.MOUSE_NONE); + * + * before setting viewer=null + * + * @param display either DisplayPanel or WrappedApplet + * @param modelAdapter the model reader + * @return a viewer instance + */ public static JmolViewer allocateViewer(Component display, JmolAdapter modelAdapter) { return new Viewer(display, modelAdapter); @@ -995,7 +1005,8 @@ // /////////////////////////////////////////////////////////////// public void setModeMouse(int modeMouse) { - // deprecated + //call before setting viewer=null + mouseManager.setModeMouse(modeMouse); } Rectangle getRubberBandSelection() { Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-04 15:26:23 UTC (rev 5822) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-04 16:09:27 UTC (rev 5823) @@ -29,6 +29,7 @@ import org.jmol.popup.JmolPopup; import org.jmol.i18n.GT; import org.jmol.util.*; +import org.jmol.viewer.JmolConstants; //import org.openscience.cdk.applications.plugin.CDKPluginManager; import Acme.JPM.Encoders.PpmEncoder; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-11 04:20:47
|
Revision: 5907 http://svn.sourceforge.net/jmol/?rev=5907&view=rev Author: hansonr Date: 2006-10-10 21:20:36 -0700 (Tue, 10 Oct 2006) Log Message: ----------- fix for application history/command recall/startup error problems reported recently changes history to report history, not clear it. adds #-- "no history" flag. If this is at the end of a line in a script file for example, then Jmol won't put it in the history. Recommended for long scripts. Modified Paths: -------------- trunk/Jmol/src/org/jmol/util/CommandHistory.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Token.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java Modified: trunk/Jmol/src/org/jmol/util/CommandHistory.java =================================================================== --- trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-10-11 03:26:45 UTC (rev 5906) +++ trunk/Jmol/src/org/jmol/util/CommandHistory.java 2006-10-11 04:20:36 UTC (rev 5907) @@ -31,6 +31,7 @@ public final static String ERROR_FLAG = "#??"; + public final static String NOHISTORY_FLAG = "#--"; final static int DEFAULT_MAX_SIZE = 100; /** @@ -155,6 +156,7 @@ if (!isOn && !strCommand.endsWith(ERROR_FLAG)) return; int i; + // I don't think Jmol can deliver a multiline parameter here while ((i = strCommand.indexOf("\n")) >= 0) { String str = strCommand.substring(0, i); @@ -228,6 +230,8 @@ private void addCommandLine(String command) { if(command == null || command.length() == 0) return; + if (command.endsWith(NOHISTORY_FLAG)) + return; if (nextCommand >= maxSize) { commandList.remove(0); nextCommand = maxSize - 1; Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-11 03:26:45 UTC (rev 5906) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-11 04:20:36 UTC (rev 5907) @@ -2855,8 +2855,8 @@ void history(int pt) throws ScriptException { if (statementLength == 1) { - // history (clear and turn on) - viewer.getSetHistory(Integer.MIN_VALUE); + //show it + showString(viewer.getSetHistory(Integer.MAX_VALUE)); return; } if (pt == 2) { Modified: trunk/Jmol/src/org/jmol/viewer/Token.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-11 03:26:45 UTC (rev 5906) +++ trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-11 04:20:36 UTC (rev 5907) @@ -575,7 +575,7 @@ "calculate", new Token(calculate,varArgCount, "calculate"), "selectionhalo", new Token(selectionHalo, onDefault1, "selectionHalos"), "selectionhalos", null, - "history", new Token(history, onDefault1, "history"), + "history", new Token(history, varArgCount, "history"), // setparams "ambient", new Token(ambient, "ambient"), Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-11 03:26:45 UTC (rev 5906) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-11 04:20:36 UTC (rev 5907) @@ -1,4 +1,4 @@ -/* $RCSfile$ + /* $RCSfile$ * $Author$ * $Date$ * $Revision$ Modified: trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-10-11 03:26:45 UTC (rev 5906) +++ trunk/Jmol/src/org/openscience/jmol/app/ScriptWindow.java 2006-10-11 04:20:36 UTC (rev 5907) @@ -110,7 +110,9 @@ public void sendConsoleEcho(String strEcho) { if (strEcho != null && !isError) { + console.outputEcho(strEcho); + } setError(false); } @@ -370,11 +372,6 @@ void recallCommand(boolean up) { String cmd = viewer.getSetHistory(up ? -1 : 1); if (cmd == null) { - String str = getText(); - if (str.lastIndexOf("$") != str.length() - 2) { - appendNewline(); - setPrompt(); - } return; } try { @@ -443,12 +440,20 @@ void setPrompt() { try { super.insertString(getLength(), "$ ", attPrompt); + setOffsetPositions(); + consoleTextPane.setCaretPosition(offsetAfterPrompt); + } catch (BadLocationException e) { + e.printStackTrace(); + } + } + + void setOffsetPositions() { + try { offsetAfterPrompt = getLength(); positionBeforePrompt = createPosition(offsetAfterPrompt - 2); - // after prompt should be immediately after $ otherwise tracks the end - // of the line (and no command will be found) at least on Mac OS X it did. - positionAfterPrompt = createPosition(offsetAfterPrompt-1); - consoleTextPane.setCaretPosition(offsetAfterPrompt); + // after prompt should be immediately after $ otherwise tracks the end + // of the line (and no command will be found) at least on Mac OS X it did. + positionAfterPrompt = createPosition(offsetAfterPrompt - 1); } catch (BadLocationException e) { e.printStackTrace(); } @@ -469,11 +474,13 @@ // position after the prompt in stead void outputBeforePrompt(String str, SimpleAttributeSet attribute) { try { - Position caretPosition = createPosition(consoleTextPane.getCaretPosition()); - super.insertString(positionBeforePrompt.getOffset(), str+"\n", attribute); - // keep the offsetAfterPrompt in sync - offsetAfterPrompt = positionBeforePrompt.getOffset() + 2; - consoleTextPane.setCaretPosition(caretPosition.getOffset()); + int pt = consoleTextPane.getCaretPosition(); + Position caretPosition = createPosition(pt); + pt = positionBeforePrompt.getOffset(); + super.insertString(pt, str+"\n", attribute); + setOffsetPositions(); + pt = caretPosition.getOffset(); + consoleTextPane.setCaretPosition(pt); } catch (BadLocationException e) { e.printStackTrace(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-11 12:12:35
|
Revision: 5909 http://svn.sourceforge.net/jmol/?rev=5909&view=rev Author: hansonr Date: 2006-10-11 05:12:22 -0700 (Wed, 11 Oct 2006) Log Message: ----------- GT._ simplification Modified Paths: -------------- trunk/Jmol/src/org/jmol/popup/JmolPopup.java trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/viewer/ModelManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/AboutDialog.java trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java trunk/Jmol/src/org/openscience/jmol/app/ConsoleTextArea.java trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java trunk/Jmol/src/org/openscience/jmol/app/HelpDialog.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java trunk/Jmol/src/org/openscience/jmol/app/WhatsNewDialog.java Modified: trunk/Jmol/src/org/jmol/popup/JmolPopup.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -142,7 +142,7 @@ if (FRAMESbyModelComputedMenu == null) return; enableMenu(FRAMESbyModelComputedMenu, false); - setLabel(FRAMESbyModelComputedMenu, (modelIndex < 0 ? GT._("Models/Frames") : getModelLabel())); + setLabel(FRAMESbyModelComputedMenu, (modelIndex < 0 ? GT._("All {0} models", viewer.getModelCount()) : getModelLabel())); removeAll(FRAMESbyModelComputedMenu); int modelCount = viewer.getModelCount(); if (modelCount < 2) @@ -257,23 +257,22 @@ viewer.getBooleanProperty("hideNameInPopup") ? hiddenModelSetName : modelSetName); enableMenu(modelSetInfoMenu, true); - addMenuItem(modelSetInfoMenu, GT._("atoms: {0}", - new Object[] { new Integer(viewer.getAtomCountInModel(modelIndex)) })); - addMenuItem(modelSetInfoMenu, GT._("bonds: {0}", - new Object[] { new Integer(viewer.getBondCountInModel(modelIndex)) })); + addMenuItem(modelSetInfoMenu, GT._("atoms: {0}", viewer + .getAtomCountInModel(modelIndex))); + addMenuItem(modelSetInfoMenu, GT._("bonds: {0}", viewer + .getBondCountInModel(modelIndex))); addMenuSeparator(modelSetInfoMenu); if (isPDB) { - addMenuItem(modelSetInfoMenu, GT._("groups: {0}", - new Object[] { new Integer(viewer.getGroupCountInModel(modelIndex)) })); - addMenuItem(modelSetInfoMenu, GT._("chains: {0}", - new Object[] { new Integer(viewer.getChainCountInModel(modelIndex)) })); - addMenuItem(modelSetInfoMenu, GT._("polymers: {0}", - new Object[] { new Integer(viewer.getPolymerCountInModel(modelIndex)) })); + addMenuItem(modelSetInfoMenu, GT._("groups: {0}", viewer + .getGroupCountInModel(modelIndex))); + addMenuItem(modelSetInfoMenu, GT._("chains: {0}", viewer + .getChainCountInModel(modelIndex))); + addMenuItem(modelSetInfoMenu, GT._("polymers: {0}", viewer + .getPolymerCountInModel(modelIndex))); addMenuSeparator(modelSetInfoMenu); } if (isMultiFrame) { - addMenuItem(modelSetInfoMenu, GT._("models: {0}", - new Object[] { new Integer(viewer.getModelCount()) })); + addMenuItem(modelSetInfoMenu, GT._("models: {0}", viewer.getModelCount())); addMenuSeparator(modelSetInfoMenu); } if (viewer.showModelSetDownload() @@ -284,8 +283,7 @@ } String getModelLabel() { - return GT._("model: {0}", - new Object[] { (modelIndex + 1) + "/" + viewer.getModelCount() }); + return GT._("model: {0}",(modelIndex + 1) + "/" + viewer.getModelCount()); } private void updateAboutSubmenu() { @@ -316,7 +314,7 @@ if (availableProcessors > 0) addMenuItem(aboutMenu, (availableProcessors == 1) ? GT._("1 processor") : - GT._("{0} processors", new Object[] { new Integer(availableProcessors) } )); + GT._("{0} processors", availableProcessors)); else addMenuItem(aboutMenu, GT._("unknown processor count")); } Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -497,21 +497,21 @@ { "atomMenu", GT._("Atoms") }, { "atomNone", GT._("Off") }, - { "atom15", GT._("{0}% van der Waals", new Object[] { "15" }) }, - { "atom20", GT._("{0}% van der Waals", new Object[] { "20" }) }, - { "atom25", GT._("{0}% van der Waals", new Object[] { "25" }) }, - { "atom50", GT._("{0}% van der Waals", new Object[] { "50" }) }, - { "atom75", GT._("{0}% van der Waals", new Object[] { "75" }) }, - { "atom100", GT._("{0}% van der Waals", new Object[] { "100" }) }, + { "atom15", GT._("{0}% van der Waals", "15") }, + { "atom20", GT._("{0}% van der Waals", "20") }, + { "atom25", GT._("{0}% van der Waals", "25") }, + { "atom50", GT._("{0}% van der Waals", "50") }, + { "atom75", GT._("{0}% van der Waals", "75") }, + { "atom100", GT._("{0}% van der Waals", "100") }, { "bondMenu", GT._("Bonds") }, { "bondNone", GT._("Off") }, { "bondWireframe", GT._("On") }, - { "bond100", GT._("{0} \u00C5", new Object[] { "0.10" }) }, - { "bond150", GT._("{0} \u00C5", new Object[] { "0.15" }) }, - { "bond200", GT._("{0} \u00C5", new Object[] { "0.20" }) }, - { "bond250", GT._("{0} \u00C5", new Object[] { "0.25" }) }, - { "bond300", GT._("{0} \u00C5", new Object[] { "0.30" }) }, + { "bond100", GT._("{0} \u00C5", "0.10") }, + { "bond150", GT._("{0} \u00C5", "0.15") }, + { "bond200", GT._("{0} \u00C5", "0.20") }, + { "bond250", GT._("{0} \u00C5", "0.25") }, + { "bond300", GT._("{0} \u00C5", "0.30") }, { "hbondMenu", GT._("Hydrogen Bonds") }, { "hbondNone", GT._("Off") }, @@ -519,22 +519,22 @@ { "hbondWireframe", GT._("On") }, { "PDBhbondSidechain", GT._("Set H-Bonds Side Chain") }, { "PDBhbondBackbone", GT._("Set H-Bonds Backbone") }, - { "hbond100", GT._("{0} \u00C5", new Object[] { "0.10" }) }, - { "hbond150", GT._("{0} \u00C5", new Object[] { "0.15" }) }, - { "hbond200", GT._("{0} \u00C5", new Object[] { "0.20" }) }, - { "hbond250", GT._("{0} \u00C5", new Object[] { "0.25" }) }, - { "hbond300", GT._("{0} \u00C5", new Object[] { "0.30" }) }, + { "hbond100", GT._("{0} \u00C5", "0.10") }, + { "hbond150", GT._("{0} \u00C5", "0.15") }, + { "hbond200", GT._("{0} \u00C5", "0.20") }, + { "hbond250", GT._("{0} \u00C5", "0.25") }, + { "hbond300", GT._("{0} \u00C5", "0.30") }, { "ssbondMenu", GT._("Disulfide Bonds") }, { "ssbondNone", GT._("Off") }, { "ssbondWireframe", GT._("On") }, { "PDBssbondSidechain", GT._("Set SS-Bonds Side Chain") }, { "PDBssbondBackbone", GT._("Set SS-Bonds Backbone") }, - { "ssbond100", GT._("{0} \u00C5", new Object[] { "0.10" }) }, - { "ssbond150", GT._("{0} \u00C5", new Object[] { "0.15" }) }, - { "ssbond200", GT._("{0} \u00C5", new Object[] { "0.20" }) }, - { "ssbond250", GT._("{0} \u00C5", new Object[] { "0.25" }) }, - { "ssbond300", GT._("{0} \u00C5", new Object[] { "0.30" }) }, + { "ssbond100", GT._("{0} \u00C5", "0.10") }, + { "ssbond150", GT._("{0} \u00C5", "0.15") }, + { "ssbond200", GT._("{0} \u00C5", "0.20") }, + { "ssbond250", GT._("{0} \u00C5", "0.25") }, + { "ssbond300", GT._("{0} \u00C5", "0.30") }, { "PDBstructureMenu", GT._("Structures") }, { "structureNone", GT._("Off") }, @@ -552,14 +552,14 @@ { "vectorMenu", GT._("Vectors") }, { "vectorOff", GT._("Off") }, { "vectorOn", GT._("On") }, - { "vector3", GT._("{0} pixels", new Object[] { "3" }) }, - { "vector005", GT._("{0} \u00C5", new Object[] { "0.05" }) }, - { "vector01", GT._("{0} \u00C5", new Object[] { "0.10" }) }, - { "vectorScale02", GT._("Scale {0}", new Object[] { "0.2" }) }, - { "vectorScale05", GT._("Scale {0}", new Object[] { "0.5" }) }, - { "vectorScale1", GT._("Scale {0}", new Object[] { "1" }) }, - { "vectorScale2", GT._("Scale {0}", new Object[] { "2" }) }, - { "vectorScale5", GT._("Scale {0}", new Object[] { "5" }) }, + { "vector3", GT._("{0} pixels", "3") }, + { "vector005", GT._("{0} \u00C5", "0.05") }, + { "vector01", GT._("{0} \u00C5", "0.10") }, + { "vectorScale02", GT._("Scale {0}", "0.2") }, + { "vectorScale05", GT._("Scale {0}", "0.5") }, + { "vectorScale1", GT._("Scale {0}", "1") }, + { "vectorScale2", GT._("Scale {0}", "2") }, + { "vectorScale5", GT._("Scale {0}", "5") }, { "stereoMenu", GT._("Stereographic") }, { "stereoNone", GT._("None") }, @@ -725,11 +725,11 @@ { "surfVDW", GT._("van der Waals Surface") }, { "surfMolecular", GT._("Molecular Surface") }, { "surfSolvent14", - GT._("Solvent Surface ({0}-Angstrom probe)", new Object[] { "1.4" }) }, + GT._("Solvent Surface ({0}-Angstrom probe)", "1.4") }, { "surfSolventAccessible14", GT._("Solvent-Accessible Surface (VDW + {0} Angstrom)", - new Object[] { "1.4" }) }, + "1.4") }, { "surfMEP", GT._("Molecular Electrostatic Potential") }, { "surfMoComputedMenu", GT._("Molecular Orbitals") }, { "surfOpaque", GT._("Make Opaque") }, @@ -749,17 +749,17 @@ { "off", GT._("Hide") }, { "dotted", GT._("Dotted") }, { "byPixelMenu", GT._("Pixel Width") }, - { "1p", GT._("{0} px", new Object[] { "1" }) }, - { "3p", GT._("{0} px", new Object[] { "3" }) }, - { "5p", GT._("{0} px", new Object[] { "5" }) }, - { "10p", GT._("{0} px", new Object[] { "10" }) }, + { "1p", GT._("{0} px", "1") }, + { "3p", GT._("{0} px", "3") }, + { "5p", GT._("{0} px", "5") }, + { "10p", GT._("{0} px", "10") }, { "byAngstromMenu", GT._("Angstrom Width") }, - { "10a", GT._("{0} \u00C5", new Object[] { "0.10" }) }, - { "20a", GT._("{0} \u00C5", new Object[] { "0.20" }) }, - { "25a", GT._("{0} \u00C5", new Object[] { "0.25" }) }, - { "50a", GT._("{0} \u00C5", new Object[] { "0.50" }) }, - { "100a", GT._("{0} \u00C5", new Object[] { "1.0" }) }, + { "10a", GT._("{0} \u00C5", "0.10") }, + { "20a", GT._("{0} \u00C5", "0.20") }, + { "25a", GT._("{0} \u00C5", "0.25") }, + { "50a", GT._("{0} \u00C5", "0.50") }, + { "100a", GT._("{0} \u00C5", "1.0") }, { "optionsMenu", GT._("Compatibility") }, { "showSelectionsCheckbox", GT._("Selection Halos") }, Modified: trunk/Jmol/src/org/jmol/viewer/ModelManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -280,51 +280,55 @@ return (frame == null) ? null : frame.getAtomBits(setType, specInfo); } + int getAtomCount() { + return (frame == null) ? 0 : frame.getAtomCount(); + } - int getChainCount() { - return (frame == null) ? 0 : frame.getChainCount(); + int getAtomCountInModel(int modelIndex) { + return (frame == null) ? 0 : modelIndex < 0 ? getAtomCount() : frame + .getAtomCountInModel(modelIndex); } - int getChainCountInModel(int modelIndex) { - return (frame == null) ? 0 : frame.getChainCountInModel(modelIndex); + int getBondCount() { + return (frame == null) ? 0 : frame.getBondCount(); } - + + int getBondCountInModel(int modelIndex) { + return (frame == null) ? 0 : modelIndex < 0 ? getBondCount() : frame + .getBondCountInModel(modelIndex); + } + int getGroupCount() { return (frame == null) ? 0 : frame.getGroupCount(); } int getGroupCountInModel(int modelIndex) { - return (frame == null) ? 0 : frame.getGroupCountInModel(modelIndex); + return (frame == null) ? 0 : modelIndex < 0 ? getGroupCount() : frame + .getGroupCountInModel(modelIndex); } + int getChainCount() { + return (frame == null) ? 0 : frame.getChainCount(); + } + + int getChainCountInModel(int modelIndex) { + return (frame == null) ? 0 : modelIndex < 0 ? getChainCount() : frame + .getChainCountInModel(modelIndex); + } + int getPolymerCount() { return (frame == null) ? 0 : frame.getPolymerCount(); } int getPolymerCountInModel(int modelIndex) { - return (frame == null) ? 0 : frame.getPolymerCountInModel(modelIndex); + return (frame == null) ? 0 : modelIndex < 0 ? getPolymerCount() : frame + .getPolymerCountInModel(modelIndex); } - int getAtomCount() { - return (frame == null) ? 0 : frame.getAtomCount(); - } - - int getBondCount() { - return (frame == null) ? 0 : frame.getBondCount(); - } - int getMoleuleCount() { return (frame == null) ? 0 : frame.getMoleculeCount(); } - int getAtomCountInModel(int modelIndex) { - return (frame == null) ? 0 : frame.getAtomCountInModel(modelIndex); - } - - int getBondCountInModel(int modelIndex) { - return (frame == null) ? 0 : frame.getBondCountInModel(modelIndex); - } - Point3f getRotationCenter() { return (frame == null ? null : frame.getRotationCenter()); } @@ -1706,4 +1710,8 @@ return; frame.hide(bsHide); } + + BitSet getHiddenSet() { + return (frame == null ? null : frame.bsHidden); + } } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -915,6 +915,10 @@ reportSelection("" + cardinalityOf(bs) + GT._(" atoms hidden")); } + BitSet getHiddenSet() { + return modelManager.getHiddenSet(); + } + void addSelection(int atomIndex) { selectionManager.addSelection(atomIndex); refresh(0, "Viewer:addSelection()"); Modified: trunk/Jmol/src/org/openscience/jmol/app/AboutDialog.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/AboutDialog.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/openscience/jmol/app/AboutDialog.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -64,8 +64,7 @@ html = new JEditorPane(aboutURL); } else { html = new JEditorPane("text/plain", - GT._("Unable to find url \"{0}\".", new Object[] - { JmolResourceHandler.getStringX("About.aboutURL") })); + GT._("Unable to find url \"{0}\".", JmolResourceHandler.getStringX("About.aboutURL"))); } html.setEditable(false); html.addHyperlinkListener(this); Modified: trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -362,12 +362,12 @@ insert = GT._("vector"); } String tooltips[] = { - GT._("Go to first {0} in the collection", new Object[] { insert }), - GT._("Go to previous {0} in the collection", new Object[] { insert }), - GT._("Play the whole collection of {0}'s", new Object[] { insert }), + GT._("Go to first {0} in the collection", insert), + GT._("Go to previous {0} in the collection", insert), + GT._("Play the whole collection of {0}'s", insert), GT._("Pause playing"), - GT._("Go to next {0} in the collection", new Object[] { insert }), - GT._("Jump to last {0} in the collection", new Object[] { insert }) + GT._("Go to next {0} in the collection", insert), + GT._("Jump to last {0} in the collection", insert) }; for (int i=buttons.length, idx=0; --i>=0; idx++) { String action = buttons[idx]; Modified: trunk/Jmol/src/org/openscience/jmol/app/ConsoleTextArea.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/ConsoleTextArea.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/openscience/jmol/app/ConsoleTextArea.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -84,8 +84,7 @@ } } catch (IOException e) { JOptionPane.showMessageDialog(null, GT._( - "Error reading from BufferedReader: {0}", - new Object[] { e.getMessage() })); + "Error reading from BufferedReader: {0}", e.getMessage())); System.exit(1); } } Modified: trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -80,16 +80,16 @@ labels.put("display", GT._("&Display")); labels.put("atomMenu", GT._("Atom")); labels.put("atomNoneScript", GT._("None")); - labels.put("atom15Script", GT._("{0}% vanderWaals", new Object[]{ "15" })); - labels.put("atom20Script", GT._("{0}% vanderWaals", new Object[]{ "20" })); - labels.put("atom25Script", GT._("{0}% vanderWaals", new Object[]{ "25" })); - labels.put("atom100Script", GT._("{0}% vanderWaals", new Object[]{ "100" })); + labels.put("atom15Script", GT._("{0}% vanderWaals", "15")); + labels.put("atom20Script", GT._("{0}% vanderWaals", "20")); + labels.put("atom25Script", GT._("{0}% vanderWaals", "25")); + labels.put("atom100Script", GT._("{0}% vanderWaals","100")); labels.put("bondMenu", GT._("Bond")); labels.put("bondNoneScript", GT._("None")); labels.put("bondWireframeScript", GT._("Wireframe")); - labels.put("bond100Script", GT._("{0} \u00C5", new Object[]{ "0.10" })); - labels.put("bond150Script", GT._("{0} \u00C5", new Object[]{ "0.15" })); - labels.put("bond200Script", GT._("{0} \u00C5", new Object[]{ "0.20" })); + labels.put("bond100Script", GT._("{0} \u00C5", "0.10")); + labels.put("bond150Script", GT._("{0} \u00C5", "0.15")); + labels.put("bond200Script", GT._("{0} \u00C5", "0.20")); labels.put("labelMenu", GT._("Label")); labels.put("labelNoneScript", GT._("None")); labels.put("labelSymbolScript", GT._("Symbol")); @@ -100,20 +100,20 @@ labels.put("vectorMenu", GT._("Vector")); labels.put("vectorOffScript", GT._("None")); labels.put("vectorOnScript", GT._("On")); - labels.put("vector3Script", GT._("{0} pixels", new Object[]{ "3" })); - labels.put("vector005Script", GT._("{0} \u00C5", new Object[]{ "0.05" })); - labels.put("vector01Script", GT._("{0} \u00C5", new Object[]{ "0.1" })); - labels.put("vectorScale02Script", GT._("Scale {0}", new Object[]{ "0.2" })); - labels.put("vectorScale05Script", GT._("Scale {0}", new Object[]{ "0.5" })); - labels.put("vectorScale1Script", GT._("Scale {0}", new Object[]{ "1" })); - labels.put("vectorScale2Script", GT._("Scale {0}", new Object[]{ "2" })); - labels.put("vectorScale5Script", GT._("Scale {0}", new Object[]{ "5" })); + labels.put("vector3Script", GT._("{0} pixels", "3" )); + labels.put("vector005Script", GT._("{0} \u00C5", "0.05" )); + labels.put("vector01Script", GT._("{0} \u00C5", "0.1" )); + labels.put("vectorScale02Script", GT._("Scale {0}", "0.2" )); + labels.put("vectorScale05Script", GT._("Scale {0}", "0.5" )); + labels.put("vectorScale1Script", GT._("Scale {0}", "1" )); + labels.put("vectorScale2Script", GT._("Scale {0}", "2" )); + labels.put("vectorScale5Script", GT._("Scale {0}", "5" )); labels.put("zoomMenu", GT._("Zoom")); - labels.put("zoom100Script", GT._("{0}%", new Object[]{ "100" })); - labels.put("zoom150Script", GT._("{0}%", new Object[]{ "150" })); - labels.put("zoom200Script", GT._("{0}%", new Object[]{ "200" })); - labels.put("zoom400Script", GT._("{0}%", new Object[]{ "400" })); - labels.put("zoom800Script", GT._("{0}%", new Object[]{ "800" })); + labels.put("zoom100Script", GT._("{0}%", "100" )); + labels.put("zoom150Script", GT._("{0}%", "150" )); + labels.put("zoom200Script", GT._("{0}%", "200" )); + labels.put("zoom400Script", GT._("{0}%", "400" )); + labels.put("zoom800Script", GT._("{0}%", "800" )); labels.put("perspectiveCheck", GT._("Perspective Depth")); labels.put("axesCheck", GT._("Axes")); labels.put("boundboxCheck", GT._("Bounding Box")); Modified: trunk/Jmol/src/org/openscience/jmol/app/HelpDialog.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/HelpDialog.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/openscience/jmol/app/HelpDialog.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -74,7 +74,7 @@ } else { html = new JEditorPane("text/plain", GT._("Unable to find url \"{0}\".", - new Object[] { JmolResourceHandler.getStringX("Help.helpURL") } + JmolResourceHandler.getStringX("Help.helpURL") )); } html.setEditable(false); Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -400,7 +400,7 @@ options.addOption(OptionBuilder.create("D")); OptionBuilder.withLongOpt("geometry"); - OptionBuilder.withDescription(GT._("window size, e.g. {0}", new Object[] { "-g500x500" })); + OptionBuilder.withDescription(GT._("window size, e.g. {0}", "-g500x500")); OptionBuilder.withValueSeparator(); OptionBuilder.hasArg(); options.addOption(OptionBuilder.create("g")); Modified: trunk/Jmol/src/org/openscience/jmol/app/WhatsNewDialog.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/WhatsNewDialog.java 2006-10-11 12:11:13 UTC (rev 5908) +++ trunk/Jmol/src/org/openscience/jmol/app/WhatsNewDialog.java 2006-10-11 12:12:22 UTC (rev 5909) @@ -64,8 +64,8 @@ html = new JEditorPane(changeLogURL); } else { html = new JEditorPane("text/plain", - GT._("Unable to find url \"{0}\".", new Object[] { - JmolResourceHandler.getStringX("WhatsNew.changeLogURL") })); + GT._("Unable to find url \"{0}\".", + JmolResourceHandler.getStringX("WhatsNew.changeLogURL"))); } html.setEditable(false); html.addHyperlinkListener(this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-11 21:38:50
|
Revision: 5918 http://svn.sourceforge.net/jmol/?rev=5918&view=rev Author: hansonr Date: 2006-10-11 14:38:42 -0700 (Wed, 11 Oct 2006) Log Message: ----------- viewer cleanup Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/SelectionManager.java trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java Modified: trunk/Jmol/src/org/jmol/viewer/SelectionManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/SelectionManager.java 2006-10-11 20:51:47 UTC (rev 5917) +++ trunk/Jmol/src/org/jmol/viewer/SelectionManager.java 2006-10-11 21:38:42 UTC (rev 5918) @@ -27,6 +27,8 @@ import org.jmol.util.ArrayUtil; import org.jmol.api.JmolSelectionListener; +import org.jmol.i18n.GT; + import java.util.BitSet; import java.util.Vector; @@ -57,6 +59,8 @@ bsHidden.or(bs); if (viewer.getFrame() != null) viewer.getFrame().bsHidden = bsHidden; + viewer.reportSelection(viewer.cardinalityOf(bsHidden) + + GT._(" atoms hidden")); } BitSet getHiddenSet() { @@ -78,7 +82,7 @@ for (int i = viewer.getAtomCount(); --i >= 0;) if (!bsSelection.get(i)) bs.set(i); - viewer.hide(bs); + hide(bs); } void removeSelection(int atomIndex) { @@ -135,7 +139,7 @@ return true; } - void select(BitSet bs) { + void select(BitSet bs) { if (bs == null) { if (!viewer.getRasmolHydrogenSetting()) excludeSelectionSet(viewer.getAtomBits("hydrogen")); @@ -145,6 +149,8 @@ } else { setSelectionSet(bs); } + viewer.reportSelection(getSelectionCount() + " " + + GT._("atoms selected")); } void selectAll() { Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2006-10-11 20:51:47 UTC (rev 5917) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2006-10-11 21:38:42 UTC (rev 5918) @@ -24,7 +24,6 @@ package org.jmol.viewer; import org.jmol.util.Logger; - import javax.vecmath.Point3f; import javax.vecmath.Point3i; import javax.vecmath.Vector3f; @@ -507,8 +506,8 @@ int slabPercentSetting = 100; int depthPercentSetting = 0; - private int slabValue; - private int depthValue; + int slabValue; + int depthValue; boolean getSlabEnabled() { return slabEnabled; @@ -579,7 +578,7 @@ return modeSlab; } - void calcSlabAndDepthValues() { + void calcSlabAndDepthValues(float rotationRadius) { slabValue = 0; depthValue = Integer.MAX_VALUE; if (slabEnabled) { @@ -590,7 +589,7 @@ // all transformed z coordinates are negative // a slab percentage of 100 should map to zero // a slab percentage of 0 should map to -diameter - int radius = (int) (viewer.getRotationRadius() * scalePixelsPerAngstrom); + int radius = (int) (rotationRadius * scalePixelsPerAngstrom); slabValue = ((100 - slabPercentSetting) * 2 * radius / 100) + cameraDistance; depthValue = ((100 - depthPercentSetting) * 2 * radius / 100) @@ -787,10 +786,9 @@ float minimumZ; - synchronized void finalizeTransformParameters() { + synchronized void finalizeTransformParameters(float rotationRadius) { calcTransformMatrix(); - calcSlabAndDepthValues(); - viewer.setSlabAndDepthValues(slabValue, depthValue); + calcSlabAndDepthValues(rotationRadius); increaseRotationRadius = false; minimumZ = Float.MAX_VALUE; haveNotifiedNaN = false; Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-11 20:51:47 UTC (rev 5917) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-11 21:38:42 UTC (rev 5918) @@ -28,7 +28,6 @@ import org.jmol.api.*; import org.jmol.g3d.*; -import org.jmol.i18n.GT; import org.jmol.util.CommandHistory; import java.awt.Graphics; @@ -231,6 +230,7 @@ } public void homePosition() { + //mouse double-click -- same as eval(reset) ** setCenter(null); transformManager.homePosition(); if (modelManager.modelsHaveSymmetry()) @@ -274,27 +274,33 @@ } void saveOrientation(String saveName) { + //from Eval stateManager.saveOrientation(saveName); } boolean restoreOrientation(String saveName, float timeSeconds) { + //from Eval return stateManager.restoreOrientation(saveName, timeSeconds); } void saveBonds(String saveName) { + //from Eval stateManager.saveBonds(saveName); } boolean restoreBonds(String saveName) { + //from Eval return stateManager.restoreBonds(saveName); } void saveSelection(String saveName) { + //from Eval stateManager.saveSelection(saveName, selectionManager.bsSelection); stateManager.restoreSelection(saveName); //just to register the # of selected atoms } boolean restoreSelection(String saveName) { + //from Eval return stateManager.restoreSelection(saveName); } @@ -304,17 +310,20 @@ void move(Vector3f dRot, int dZoom, Vector3f dTrans, int dSlab, float floatSecondsTotal, int fps) { + //from Eval transformManager.move(dRot, dZoom, dTrans, dSlab, floatSecondsTotal, fps); } public void moveTo(float floatSecondsTotal, Point3f pt, float degrees, int zoom, int xTrans, int yTrans) { + //from Eval transformManager.moveTo(floatSecondsTotal, pt, degrees, zoom, xTrans, yTrans); } public void moveTo(float floatSecondsTotal, Matrix3f rotationMatrix, Point3f center, int zoom, int xTrans, int yTrans) { + //from StateManager transformManager.moveTo(floatSecondsTotal, rotationMatrix, center, zoom, xTrans, yTrans); } @@ -324,114 +333,73 @@ } void rotateXYBy(int xDelta, int yDelta) { - //mouse + //mouseSinglePressDrag transformManager.rotateXYBy(xDelta, yDelta); refresh(1, "Viewer:rotateXYBy()"); } void rotateZBy(int zDelta) { - //mouse + //mouseSinglePressDrag transformManager.rotateZBy(zDelta); refresh(1, "Viewer:rotateZBy()"); } public void rotateFront() { - //appdisplaypanel + //app DisplayPanel.FrontAction transformManager.rotateFront(); + refresh(1, "Viewer:rotateFront()"); } public void rotateToX(float angleRadians) { - //JmolViewer + //Viewer.rotateToX(int) + //app DisplayPanel.rotate(); transformManager.rotateToX(angleRadians); + refresh(1, "Viewer:rotateToX()"); } public void rotateToY(float angleRadians) { - //JmolViewer + //Viewer.rotateToY(int) + //app DisplayPanel.rotate(); transformManager.rotateToY(angleRadians); + refresh(1, "Viewer:rotateToY()"); } public void rotateToZ(float angleRadians) { - //JmolViewer + //app DisplayPanel.rotate(); transformManager.rotateToZ(angleRadians); + refresh(1, "Viewer:rotateToZ()"); } final static float radiansPerDegree = (float) (2 * Math.PI / 360); - final static float degreesPerRadian = (float) (360 / (2 * Math.PI)); public void rotateToX(int angleDegrees) { - //appdisplaypanel + //app DisplayPanel.BottomAction, .TopAction; rotateToX(angleDegrees * radiansPerDegree); } public void rotateToY(int angleDegrees) { - //appdisplaypanel + //app DisplayPanel.LeftAction, .RightAction; rotateToY(angleDegrees * radiansPerDegree); } - void rotateToZ(int angleDegrees) { - //appdisplaypanel - rotateToZ(angleDegrees * radiansPerDegree); - } - - void rotateXRadians(float angleRadians) { - //eval move - transformManager.rotateXRadians(angleRadians); - refresh(1, "Viewer:rotateXRadians()"); - } - - void rotateYRadians(float angleRadians) { - //eval move - transformManager.rotateYRadians(angleRadians); - refresh(1, "Viewer:rotateYRadians()"); - } - - void rotateZRadians(float angleRadians) { - //eval move - transformManager.rotateZRadians(angleRadians); - refresh(1, "Viewer:rotateZRadians()"); - } - - void rotateXDegrees(float angleDegrees) { - //deprecated - rotateXRadians(angleDegrees * radiansPerDegree); - } - - void rotateYDegrees(float angleDegrees) { - //deprecated - rotateYRadians(angleDegrees * radiansPerDegree); - } - - void rotateZDegrees(float angleDegrees) { - //deprecated - rotateZRadians(angleDegrees * radiansPerDegree); - } - - void rotate(AxisAngle4f axisAngle) { - //unused - transformManager.rotateAxisAngle(axisAngle); - } - - void rotateTo(float xAxis, float yAxis, float zAxis, float degrees) { - //unused - transformManager.rotateTo(xAxis, yAxis, zAxis, degrees); - } - - void rotateTo(AxisAngle4f axisAngle) { - //unused - transformManager.rotateTo(axisAngle); - } - void translateXYBy(int xDelta, int yDelta) { + //mouseDoublePressDrag, mouseSinglePressDrag transformManager.translateXYBy(xDelta, yDelta); refresh(1, "Viewer:translateXYBy()"); } void translateToXPercent(float percent) { + //Eval.translate() + //ModelManager.setNewRotationCenter() + //StateManager.Orientation() transformManager.translateToXPercent(percent); refresh(1, "Viewer:translateToXPercent()"); } void translateToYPercent(float percent) { + //Eval.translate() + //ModelManager.setNewRotationCenter() + //StateManager.Orientation() transformManager.translateToYPercent(percent); refresh(1, "Viewer:translateToYPercent()"); } @@ -439,6 +407,7 @@ void translateToZPercent(float percent) { transformManager.translateToZPercent(percent); refresh(1, "Viewer:translateToZPercent()"); + //Eval.translate() } float getTranslationXPercent() { @@ -457,24 +426,8 @@ return transformManager.getTranslationScript(); } - void translateByXPercent(float percent) { - translateToXPercent(getTranslationXPercent() + percent); - } - - void translateByYPercent(float percent) { - translateToYPercent(getTranslationYPercent() + percent); - } - - void translateByZPercent(float percent) { - translateToZPercent(getTranslationZPercent() + percent); - } - - void translateCenterTo(int x, int y) { - // not called - transformManager.translateCenterTo(x, y); - } - void zoomBy(int pixels) { + //MouseManager.mouseSinglePressDrag transformManager.zoomBy(pixels); refresh(1, "Viewer:zoomBy()"); } @@ -496,6 +449,9 @@ } void zoomByPercent(int percent) { + //Eval.zoom + //MouseManager.mouseWheel + //StyleManager.setCommonDefaults transformManager.zoomByPercent(percent); refresh(1, "Viewer:zoomByPercent()"); } @@ -518,50 +474,50 @@ } void slabByPixels(int pixels) { + //MouseManager.mouseSinglePressDrag transformManager.slabByPercentagePoints(pixels); refresh(0, "Viewer:slabByPixels()"); } void depthByPixels(int pixels) { + //MouseManager.mouseDoublePressDrag transformManager.depthByPercentagePoints(pixels); refresh(0, "Viewer:depthByPixels()"); } void slabDepthByPixels(int pixels) { + //MouseManager.mouseSinglePressDrag transformManager.slabDepthByPercentagePoints(pixels); refresh(0, "Viewer:slabDepthByPixels()"); } void slabToPercent(int percentSlab) { + //Eval.slab transformManager.slabToPercent(percentSlab); refresh(0, "Viewer:slabToPercent()"); } void depthToPercent(int percentDepth) { + //Eval.depth transformManager.depthToPercent(percentDepth); refresh(0, "Viewer:depthToPercent()"); } void setSlabEnabled(boolean slabEnabled) { + //Eval.slab transformManager.setSlabEnabled(slabEnabled); refresh(0, "Viewer:setSlabEnabled()"); } - void setModeSlab(int modeSlab) { - transformManager.setModeSlab(modeSlab); - refresh(0, "Viewer:setModeSlab()"); - } - - int getModeSlab() { - return transformManager.modeSlab; - } - public Matrix4f getUnscaledTransformMatrix() { return transformManager.getUnscaledTransformMatrix(); } void finalizeTransformParameters() { - transformManager.finalizeTransformParameters(); + //FrameRenderer + transformManager.finalizeTransformParameters(getRotationRadius()); + g3d.setSlabAndDepthValues(transformManager.slabValue, + transformManager.depthValue); } Point3i transformPoint(Point3f pointAngstroms) { @@ -604,18 +560,23 @@ } float scaleToScreen(int z, float sizeAngstroms) { + //Sticks renderer return transformManager.scaleToScreen(z, sizeAngstroms); } short scaleToScreen(int z, int milliAngstroms) { + //all shapes return transformManager.scaleToScreen(z, milliAngstroms); } float scaleToPerspective(int z, float sizeAngstroms) { + //DotsRenderer return transformManager.scaleToPerspective(z, sizeAngstroms); } void scaleFitToScreen() { + //ModelManager.setNewRotationCenter + //setCenter transformManager.scaleFitToScreen(); } @@ -627,11 +588,8 @@ return TF; } - void setCrystallographicDefaults() { - styleManager.setCrystallographicDefaults(); - } - void checkCameraDistance() { + //RepaintManager if (!allowCameraMove()) return; if (transformManager.getIncreaseRotationRadius()) @@ -687,26 +645,18 @@ } void setScaleAngstromsPerInch(float angstromsPerInch) { + //Eval.setScale3d transformManager.setScaleAngstromsPerInch(angstromsPerInch); } - void setSlabAndDepthValues(int slabValue, int depthValue) { - g3d.setSlabAndDepthValues(slabValue, depthValue); - } - public void setVibrationPeriod(float period) { + //Eval + //app AtomSetChooser transformManager.setVibrationPeriod(period); } - void setVibrationT(float t) { - transformManager.setVibrationT(t); - } - - float getVibrationRadians() { - return transformManager.vibrationRadians; - } - void setSpinX(int value) { + //Eval transformManager.setSpinX(value); } @@ -715,6 +665,7 @@ } void setSpinY(int value) { + //Eval transformManager.setSpinY(value); } @@ -723,6 +674,7 @@ } void setSpinZ(int value) { + //Eval transformManager.setSpinZ(value); } @@ -731,6 +683,7 @@ } void setSpinFps(int value) { + //Eval transformManager.setSpinFps(value); } @@ -739,6 +692,9 @@ } void setSpinOn(boolean spinOn) { + //Eval + //PickingManager.atomPicked + //startSpinningAxis transformManager.setSpinOn(spinOn); } @@ -766,10 +722,6 @@ return transformManager.getTransformText(); } - void setRotation(Matrix3f matrixRotation) { - transformManager.setRotation(matrixRotation); - } - void getRotation(Matrix3f matrixRotation) { transformManager.getRotation(matrixRotation); } @@ -779,6 +731,8 @@ // /////////////////////////////////////////////////////////////// void setDefaultColors(String colorScheme) { + //Eval + //StyleManager if (!isSilent) Logger.info("setting color scheme to:" + colorScheme); colorManager.setDefaultColors(colorScheme); @@ -798,6 +752,7 @@ } void setRubberbandArgb(int argb) { + //Eval colorManager.setRubberbandArgb(argb); } @@ -806,6 +761,7 @@ } void setElementArgb(int elementNumber, int argb) { + //Eval colorManager.setElementArgb(elementNumber, argb); } @@ -814,10 +770,14 @@ } public void setVectorScale(float scale) { + //Eval + //AtomSetChooser transformManager.setVectorScale(scale); } public void setVibrationScale(float scale) { + //Eval + //AtomSetChooser transformManager.setVibrationScale(scale); } @@ -826,6 +786,7 @@ } public void setBackgroundArgb(int argb) { + //Eval colorManager.setBackgroundArgb(argb); refresh(0, "Viewer:setBackgroundArgb()"); } @@ -835,6 +796,8 @@ } public void setColorBackground(String colorName) { + //ColorManager.setDefaultColors + //Jmol applet colorManager.setColorBackground(colorName); refresh(0, "Viewer:setColorBackground()"); } @@ -848,6 +811,7 @@ } void setSpecular(boolean specular) { + //Eval colorManager.setSpecular(specular); } @@ -856,27 +820,25 @@ } void setSpecularPower(int specularPower) { + //Eval colorManager.setSpecularPower(specularPower); } void setAmbientPercent(int ambientPercent) { + //Eval colorManager.setAmbientPercent(ambientPercent); } void setDiffusePercent(int diffusePercent) { + //Eval colorManager.setDiffusePercent(diffusePercent); } void setSpecularPercent(int specularPercent) { + //Eval colorManager.setSpecularPercent(specularPercent); } - // x & y light source coordinates are fixed at -1,-1 - // z should be in the range 0, +/- 3 ? - void setLightsourceZ(float z) { - colorManager.setLightsourceZ(z); - } - short getColixAtom(Atom atom) { return colorManager.getColixAtom(atom); } @@ -899,23 +861,26 @@ // /////////////////////////////////////////////////////////////// void removeSelection(int atomIndex) { + //PickingManager.applyMouseStyle selectionManager.removeSelection(atomIndex); refresh(0, "Viewer:removeSelection()"); } void removeSelection(BitSet set) { + //PickingManager.applyMouseStyle selectionManager.removeSelection(set); refresh(0, "Viewer:removeSelection()"); } void select(BitSet bs) { + //Eval + //StateManager selectionManager.select(bs); - reportSelection("" + getSelectionCount() + " " + GT._("atoms selected")); } void hide(BitSet bs) { + //Eval selectionManager.hide(bs); - reportSelection("" + cardinalityOf(bs) + GT._(" atoms hidden")); } BitSet getHiddenSet() { @@ -923,21 +888,25 @@ } void addSelection(int atomIndex) { + //PickingManager.applyMouseStyle selectionManager.addSelection(atomIndex); refresh(0, "Viewer:addSelection()"); } void addSelection(BitSet set) { + //PickingManager.applyMouseStyle selectionManager.addSelection(set); refresh(0, "Viewer:addSelection()"); } void toggleSelection(int atomIndex) { + //PickingManager.applyMouseStyle selectionManager.toggleSelection(atomIndex); refresh(0, "Viewer:toggleSelection()"); } void setSelection(int atomIndex) { + //PickingManager.applyMouseStyle selectionManager.setSelection(atomIndex); refresh(0, "Viewer:setSelection()"); } @@ -953,16 +922,21 @@ } public void selectAll() { + //app DisplayPanel.SelectallAction + //initializeModel selectionManager.selectAll(); refresh(0, "Viewer:selectAll()"); } public void clearSelection() { + //app DisplayPanel.DeselectallAction + //PickingManager.atomPicked (Pfatt) selectionManager.clearSelection(); refresh(0, "Viewer:clearSelection()"); } public void setSelectionSet(BitSet set) { + //PickingManager.applyMouseStyle selectionManager.setSelectionSet(set); refresh(0, "Viewer:setSelectionSet()"); } @@ -972,20 +946,17 @@ } void toggleSelectionSet(BitSet set) { + //PickingManager.applyMouseStyle selectionManager.toggleSelectionSet(set); refresh(0, "Viewer:toggleSelectionSet()"); } void invertSelection() { + //Eval selectionManager.invertSelection(); // only used from a script, so I do not think a refresh() is necessary } - void excludeSelectionSet(BitSet set) { - selectionManager.excludeSelectionSet(set); - // only used from a script, so I do not think a refresh() is necessary - } - BitSet getSelectionSet() { return selectionManager.bsSelection; } @@ -995,6 +966,7 @@ } void setFormalCharges(int formalCharge) { + //Eval modelManager.setFormalCharges(selectionManager.bsSelection, formalCharge); } @@ -1048,6 +1020,7 @@ // /////////////////////////////////////////////////////////////// void setAppletProxy(String appletProxy) { + //Eval fileManager.setAppletProxy(appletProxy); } @@ -1056,6 +1029,7 @@ } void setDefaultDirectory(String defaultDirectory) { + //Eval fileManager.setDefaultDirectory(defaultDirectory); } @@ -1072,10 +1046,13 @@ } public void openFile(String name) { + //Jmol app file dropper, main, OpenUrlAction, RecentFilesAction + //app Jmol BYPASSES SCRIPTING ** openFile(name, null); } public void openFile(String name, int[] params) { + //Eval if (name == null) return; if (name.equalsIgnoreCase("string")) { @@ -1095,6 +1072,7 @@ } public void openFiles(String modelName, String[] names) { + //Eval clear(); // keep old screen image while new file is being loaded // forceRefresh(); @@ -1109,10 +1087,12 @@ } public void openStringInline(String strModel) { + //Jmol app file dropper openStringInline(strModel, null); } - public void openStringInline(String strModel, int[] params) { + private void openStringInline(String strModel, int[] params) { + //loadInline, openFile, openStringInline clear(); fileManager.openStringInline(strModel, params); String errorMsg = getOpenFileError(); @@ -1125,19 +1105,18 @@ return fileManager.inlineData; } - public void setInlineChar(char newLine) { - global.inlineNewlineChar = newLine; - } - public char getInlineChar() { return global.inlineNewlineChar; } public void loadInline(String strModel) { + //applet Console, loadInline, app PasteClipboard loadInline(strModel, global.inlineNewlineChar); } public void loadInline(String strModel, char newLine) { + //Eval data + //loadInline if (strModel == null) return; Logger.debug(strModel); @@ -1155,6 +1134,7 @@ } public void openDOM(Object DOMNode) { + //applet.loadDOMNode clear(); long timeBegin = System.currentTimeMillis(); fileManager.openDOM(DOMNode); @@ -1184,12 +1164,12 @@ System.gc(); } + /** + * misnamed -- really this opens the file, gets the data, and returns error or null + * + * @return errorMsg + */ public String getOpenFileError() { - String errorMsg = getOpenFileError1(); - return errorMsg; - } - - String getOpenFileError1() { String fullPathName = getFullPathName(); String fileName = getFileName(); Object clientFile = fileManager.waitForClientFileOrErrorMessage(); @@ -1202,6 +1182,22 @@ return null; } + public void openClientFile(String fullPathName, String fileName, + Object clientFile) { + // maybe there needs to be a call to clear() + // or something like that here + // for when CdkEditBus calls this directly + setStatusFileLoaded(2, fullPathName, fileName, modelManager + .getModelSetName(), clientFile, null); + pushHoldRepaint(); + modelManager + .setClientFile(fullPathName, fileName, modelAdapter, clientFile); + initializeModel(); + popHoldRepaint(); + setStatusFileLoaded(3, fullPathName, fileName, modelManager + .getModelSetName(), clientFile, null); + } + public String getCurrentFileAsString() { if (getFullPathName() == "string") { return fileManager.inlineData; @@ -1236,36 +1232,19 @@ } public void setEchoStateActive(boolean TF) { + //Eval modelManager.setEchoStateActive(TF); } public void zap() { + //Eval + //setAppletContext clear(); modelManager.zap(); initializeModel(); } - public void calculateStructures() { - modelManager.calculateStructures(); - } - - public void openClientFile(String fullPathName, String fileName, - Object clientFile) { - // maybe there needs to be a call to clear() - // or something like that here - // for when CdkEditBus calls this directly - setStatusFileLoaded(2, fullPathName, fileName, modelManager - .getModelSetName(), clientFile, null); - pushHoldRepaint(); - modelManager - .setClientFile(fullPathName, fileName, modelAdapter, clientFile); - initializeModel(); - popHoldRepaint(); - setStatusFileLoaded(3, fullPathName, fileName, modelManager - .getModelSetName(), clientFile, null); - } - - void clear() { + private void clear() { repaintManager.clear(); transformManager.clearVibration(); transformManager.clearSpin(); @@ -1279,7 +1258,7 @@ System.gc(); } - void initializeModel() { + private void initializeModel() { homePosition(); selectAll(); setCenter(getRotationCenter()); @@ -1335,7 +1314,13 @@ return modelManager.frame != null; } + public void calculateStructures() { + //Eval + modelManager.calculateStructures(); + } + void clearBfactorRange() { + //Eval modelManager.clearBfactorRange(); } @@ -1567,6 +1552,7 @@ } void setCenterFromInternalRotation(Point3f center) { + //TransformManager.getNewFixedRotationCenter modelManager.setRotationCenterAndRadiusXYZ(center, false); } Modified: trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-11 20:51:47 UTC (rev 5917) +++ trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-11 21:38:42 UTC (rev 5918) @@ -24,7 +24,6 @@ package org.openscience.jmol.app; import org.jmol.api.*; -import org.jmol.viewer.JmolConstants; import org.jmol.i18n.GT; import java.awt.*; import java.awt.event.*; @@ -75,7 +74,6 @@ void setRotateMode() { Jmol.setRotateButton(); - viewer.setModeMouse(JmolConstants.MOUSE_ROTATE); viewer.setSelectionHaloEnabled(false); } @@ -224,7 +222,6 @@ } public void actionPerformed(ActionEvent e) { - viewer.setModeMouse(JmolConstants.MOUSE_PICK); viewer.setSelectionHaloEnabled(true); status.setStatus(1, GT._("Select Atoms")); } @@ -238,7 +235,6 @@ } public void actionPerformed(ActionEvent e) { - viewer.setModeMouse(JmolConstants.MOUSE_DELETE); viewer.setSelectionHaloEnabled(false); status.setStatus(1, GT._("Delete Atoms")); } @@ -252,7 +248,6 @@ } public void actionPerformed(ActionEvent e) { - viewer.setModeMouse(JmolConstants.MOUSE_ROTATE); viewer.setSelectionHaloEnabled(false); status.setStatus(1, ((JComponent) e.getSource()).getToolTipText()); } @@ -266,7 +261,6 @@ } public void actionPerformed(ActionEvent e) { - viewer.setModeMouse(JmolConstants.MOUSE_ZOOM); viewer.setSelectionHaloEnabled(false); status.setStatus(1, ((JComponent) e.getSource()).getToolTipText()); } @@ -280,7 +274,6 @@ } public void actionPerformed(ActionEvent e) { - viewer.setModeMouse(JmolConstants.MOUSE_XLATE); viewer.setSelectionHaloEnabled(false); status.setStatus(1, ((JComponent) e.getSource()).getToolTipText()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-12 03:35:36
|
Revision: 5919 http://svn.sourceforge.net/jmol/?rev=5919&view=rev Author: hansonr Date: 2006-10-11 20:35:10 -0700 (Wed, 11 Oct 2006) Log Message: ----------- --no menu update during animation (generally now it's every frame change, not just every file change) --much more private viewer (doesn't limit any public interface functions) Modified Paths: -------------- trunk/Jmol/src/org/jmol/applet/Jmol.java trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Frame.java trunk/Jmol/src/org/jmol/viewer/Mmset.java trunk/Jmol/src/org/jmol/viewer/Model.java trunk/Jmol/src/org/jmol/viewer/ModelManager.java trunk/Jmol/src/org/jmol/viewer/MouseManager.java trunk/Jmol/src/org/jmol/viewer/MouseManager11.java trunk/Jmol/src/org/jmol/viewer/MouseManager14.java trunk/Jmol/src/org/jmol/viewer/RepaintManager.java trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/StyleManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -752,11 +752,13 @@ } public void notifyFrameChanged(int frameNo) { + boolean isAnimationRunning = (frameNo <= -2); if (animFrameCallback != null && jsoWindow != null) jsoWindow.call(animFrameCallback, new Object[] { htmlName, - new Integer(frameNo) }); - if (jmolpopup != null) - jmolpopup.updateComputedMenus(); + new Integer(Math.max(frameNo, -2 - frameNo)) }); + if (jmolpopup == null || isAnimationRunning) + return; + jmolpopup.updateComputedMenus(); } public void notifyAtomPicked(int atomIndex, String strInfo) { Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -318,23 +318,30 @@ { "FRAMESanimateMenu", - "animModeMenu - " + "play stop nextframe prevframe rewind - " + "animModeMenu - play pause resume stop - nextframe prevframe rewind - playrev restart - " + "animFpsMenu" }, - { "animModeMenu", "OnceThrough Palindrome Loop" }, - { "OnceThrough", "set anim mode once" }, - { "Palindrome", "set anim mode palindrome" }, - { "Loop", "set anim mode loop" }, - { "play", "anim on" }, - { "stop", "anim off" }, - { "nextframe", "frame next" }, - { "prevframe", "frame prev" }, - { "rewind", "frame 1" }, + { "animModeMenu", "onceThrough palindrome loop" }, + { "onceThrough", "anim mode once#" }, + { "palindrome", "anim mode palindrome#" }, + { "loop", "anim mode loop#" }, + { "play", "anim play#" }, + { "pause", "anim pause#" }, + { "resume", "anim resume#" }, + { "stop", "anim off#" }, + + { "nextframe", "frame next#" }, + { "prevframe", "frame prev#" }, + { "playrev", "anim playrev#" }, + + { "rewind", "anim rewind#" }, + { "restart", "anim on#" }, + { "animFpsMenu", "animfps5 animfps10 animfps20 animfps30 animfps50" }, - { "animfps5", "set anim fps 5" }, - { "animfps10", "set anim fps 10" }, - { "animfps20", "set anim fps 20" }, - { "animfps30", "set anim fps 30" }, - { "animfps50", "set anim fps 50" }, + { "animfps5", "anim fps 5#" }, + { "animfps10", "anim fps 10#" }, + { "animfps20", "anim fps 20#" }, + { "animfps30", "anim fps 30#" }, + { "animfps50", "anim fps 50#" }, { "measureMenu", @@ -677,15 +684,21 @@ { "FRAMESanimateMenu", GT._("Animate") }, { "animModeMenu", GT._("Animation Mode") }, - { "OnceThrough", GT._("Play Once") }, - { "Palindrome", GT._("Palindrome") }, - { "Loop", GT._("Loop") }, + { "onceThrough", GT._("Play Once") }, + { "palindrome", GT._("Palindrome") }, + { "loop", GT._("Loop") }, + { "play", GT._("Play") }, + { "pause", GT._("Pause") }, + { "resume", GT._("Resume") }, { "stop", GT._("Stop") }, { "nextframe", GT._("Next Frame") }, { "prevframe", GT._("Previous Frame") }, { "rewind", GT._("Rewind") }, - { "revplay", GT._("Reverse Play") }, + + { "playrev", GT._("Reverse") }, + { "animOn", GT._("Restart") }, + { "animFpsMenu", GT._("Set FPS") }, { "animfps5", "5" }, { "animfps10", "10" }, Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -443,7 +443,7 @@ if (pc > 1) viewer.clearScriptQueue(); case Token.quit: // quit this only if it isn't the first command - interruptExecution = ((pc > 1 || !viewer.scriptManager.useQueue) ? Boolean.TRUE + interruptExecution = ((pc > 1 || !viewer.usingScriptQueue()) ? Boolean.TRUE : Boolean.FALSE); break; case Token.label: @@ -3662,7 +3662,7 @@ void frameControl(Token token, boolean isSubCmd) throws ScriptException { switch (token.tok) { case Token.playrev: - viewer.setAnimationDirection(-viewer.getAnimationDirection()); + viewer.reverseAnimation(); case Token.play: case Token.resume: viewer.resumeAnimation(); Modified: trunk/Jmol/src/org/jmol/viewer/Frame.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -717,10 +717,6 @@ mmset.freeze(); } - void recalculateStructure(BitSet bsSelected) { - mmset.recalculateStructure(bsSelected); - } - void setConformation(int modelIndex, BitSet bsConformation) { mmset.setConformation(modelIndex, bsConformation); } Modified: trunk/Jmol/src/org/jmol/viewer/Mmset.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Mmset.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/Mmset.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -75,11 +75,6 @@ models[i].calculateStructures(); } - void recalculateStructure(BitSet bsSelected) { - for (int i = modelCount; --i >= 0;) - models[i].recalculateStructure(bsSelected); - } - void setConformation(int modelIndex, BitSet bsConformation) { for (int i = modelCount; --i >= 0;) if (i == modelIndex || modelIndex < 0) Modified: trunk/Jmol/src/org/jmol/viewer/Model.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Model.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/Model.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -132,10 +132,6 @@ polymers[i].calculateStructures(); } - void recalculateStructure(BitSet bsSelected) { - //unfinished - } - void setConformation(BitSet bsConformation) { //Logger.debug("Model.calculateStructures"); for (int i = polymerCount; --i >= 0; ) Modified: trunk/Jmol/src/org/jmol/viewer/ModelManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/ModelManager.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -1480,12 +1480,6 @@ return (frame == null ? false : frame.someModelsHaveSymmetry); } - void recalculateStructure(BitSet bsSelected) { - if (frame == null) - return; - frame.recalculateStructure(bsSelected); - } - BitSet setConformation(int modelIndex, BitSet bsConformation) { frame.setConformation(modelIndex, bsConformation); return bsConformation; Modified: trunk/Jmol/src/org/jmol/viewer/MouseManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/MouseManager.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/MouseManager.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -308,7 +308,7 @@ case MIDDLE: case SHIFT_LEFT: if (nearestAtomIndex < 0) - viewer.homePosition(); + viewer.script("reset"); break; } } Modified: trunk/Jmol/src/org/jmol/viewer/MouseManager11.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/MouseManager11.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/MouseManager11.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -41,8 +41,8 @@ } void removeMouseListeners11() { - viewer.display.removeMouseListener(this); - viewer.display.removeMouseMotionListener(this); + viewer.getAwtComponent().removeMouseListener(this); + viewer.getAwtComponent().removeMouseMotionListener(this); } boolean handleOldJvm10Event(Event e) { Modified: trunk/Jmol/src/org/jmol/viewer/MouseManager14.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/MouseManager14.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/MouseManager14.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -39,7 +39,7 @@ } void removeMouseListeners14() { - viewer.display.removeMouseWheelListener(this); + viewer.getAwtComponent().removeMouseWheelListener(this); } public void mouseWheelMoved(MouseWheelEvent e) { Modified: trunk/Jmol/src/org/jmol/viewer/RepaintManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/RepaintManager.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/RepaintManager.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -27,7 +27,6 @@ import org.jmol.g3d.*; -import java.awt.Image; import java.awt.Rectangle; import java.util.Hashtable; import java.util.BitSet; @@ -54,10 +53,14 @@ if (displayModelIndex == -1) setBackgroundModelIndex(-1); viewer.setTainted(true); - viewer.setStatusFrameChanged(modelIndex); + setStatusFrameChanged(); setFrameRangeVisible(); } + void setStatusFrameChanged() { + viewer.setStatusFrameChanged(animationOn ? -2 - displayModelIndex : displayModelIndex); + } + int backgroundModelIndex = -1; void setBackgroundModelIndex(int modelIndex) { // no background unless only a SINGLE model is being displayed (for now) @@ -100,11 +103,6 @@ refresh(); } - Image takeSnapshot() { - return null; - //return awtComponent.takeSnapshot(); - } - int holdRepaint = 0; boolean repaintPending; void pushHoldRepaint() { @@ -116,7 +114,7 @@ if (holdRepaint <= 0) { holdRepaint = 0; repaintPending = true; - viewer.display.repaint(); + viewer.repaint(); } } @@ -125,13 +123,13 @@ return; repaintPending = true; if (holdRepaint == 0) { - viewer.display.repaint(); + viewer.repaint(); } } synchronized void requestRepaintAndWait() { - viewer.display.repaint(); + viewer.repaint(); try { wait(); } catch (InterruptedException e) { @@ -210,12 +208,8 @@ int animationDirection = 1; int currentDirection = 1; void setAnimationDirection(int animationDirection) { - if (animationDirection == 1 || animationDirection == -1) { - this.animationDirection = animationDirection; - currentDirection = 1; - } - else - Logger.error("invalid animationDirection:" + animationDirection); + this.animationDirection = animationDirection; + currentDirection = 1; } int animationFps = 10; @@ -277,12 +271,19 @@ animationPaused = isPaused; viewer.refresh(0, "Viewer:setAnimationOff"); animationOn = false; + setStatusFrameChanged(); } void pauseAnimation() { setAnimationOff(true); } + void reverseAnimation() { + currentDirection = -currentDirection; + if (!animationOn) + resumeAnimation(); + } + int intAnimThread = 0; void resumeAnimation() { if(displayModelIndex < 0) Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -150,7 +150,12 @@ } synchronized void setStatusFrameChanged(int frameNo) { - setStatusChanged("frameChanged", frameNo, (frameNo >=0 ? viewer.getModelName(frameNo) : ""), false); + boolean isAnimationRunning = (frameNo <= -2); + int f = frameNo; + if (isAnimationRunning) + f = -2 - f; + setStatusChanged("frameChanged", frameNo, (f >= 0 ? viewer + .getModelName(f) : ""), false); if (jmolStatusListener != null) jmolStatusListener.notifyFrameChanged(frameNo); } @@ -258,7 +263,7 @@ drivingSync = (syncMode == 1 ? true : false); isSynced = (syncMode > 0 || isSynced && syncMode < 0? true : false); - Logger.debug(viewer.htmlName + " " + syncMode + " synced? " + isSynced + " driving?" + drivingSync); + Logger.debug(viewer.getHtmlName() + " " + syncMode + " synced? " + isSynced + " driving?" + drivingSync); } public void syncSend(String script, String appletName) { Modified: trunk/Jmol/src/org/jmol/viewer/StyleManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StyleManager.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/StyleManager.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -42,8 +42,8 @@ void setCommonDefaults() { viewer.zoomToPercent(100); - viewer.setPercentVdwAtom(DEFAULT_PERCENT_VDW_ATOM); viewer.setPerspectiveDepth(true); + viewer.setPercentVdwAtom(DEFAULT_PERCENT_VDW_ATOM); viewer.setBondTolerance(DEFAULT_BOND_TOLERANCE); viewer.setMinBondDistance(DEFAULT_MIN_BOND_DISTANCE); viewer.setMarBond((short)(DEFAULT_BOND_RADIUS * 1000)); @@ -53,14 +53,14 @@ setCommonDefaults(); viewer.setDefaultColors("jmol"); viewer.setAxesOrientationRasmol(false); - setZeroBasedXyzRasmol(false); + viewer.setZeroBasedXyzRasmol(false); } void setRasmolDefaults() { setCommonDefaults(); viewer.setDefaultColors("rasmol"); viewer.setAxesOrientationRasmol(true); - setZeroBasedXyzRasmol(true); + viewer.setZeroBasedXyzRasmol(true); viewer.setPercentVdwAtom(0); viewer.setMarBond((short)1); } @@ -143,11 +143,6 @@ this.showMeasurements = showMeasurements; } - boolean showMeasurementLabels = true; - void setShowMeasurementLabels(boolean showMeasurementLabels) { - this.showMeasurementLabels = showMeasurementLabels; - } - String measureDistanceUnits = "nanometers"; boolean setMeasureDistanceUnits(String units) { if (units.equalsIgnoreCase("angstroms")) Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -81,35 +81,40 @@ Logger.debug("viewer finalize " + this); } - StateManager stateManager = new StateManager(this); - StateManager.GlobalSettings global = stateManager.globalSettings; - Component display; - ColorManager colorManager; - PropertyManager propertyManager; - StatusManager statusManager; - TransformManager transformManager; - SelectionManager selectionManager; - MouseManager mouseManager; - FileManager fileManager; - ModelManager modelManager; - RepaintManager repaintManager; - StyleManager styleManager; - TempManager tempManager; - PickingManager pickingManager; - ScriptManager scriptManager; - Eval eval; - Graphics3D g3d; - JmolAdapter modelAdapter; - String strJavaVendor; - String strJavaVersion; - String strOSName; - Hashtable appletInfo; - String htmlName = ""; - boolean jvm11orGreater = false; - boolean jvm12orGreater = false; - boolean jvm14orGreater = false; - public CommandHistory commandHistory = new CommandHistory(); + // these are all private now so we are certain they are not + // being accesed by any other classes + + private Component display; + private Graphics3D g3d; + private JmolAdapter modelAdapter; + private CommandHistory commandHistory = new CommandHistory(); + private ColorManager colorManager; + private Eval eval; + private FileManager fileManager; + private ModelManager modelManager; + private MouseManager mouseManager; + private PickingManager pickingManager; + private PropertyManager propertyManager; + private RepaintManager repaintManager; + private ScriptManager scriptManager; + private SelectionManager selectionManager; + private StateManager stateManager = new StateManager(this); + private StateManager.GlobalSettings global = stateManager.globalSettings; + private StatusManager statusManager; + private StyleManager styleManager; + private TempManager tempManager; + private TransformManager transformManager; + + private String strJavaVendor; + private String strJavaVersion; + private String strOSName; + private String htmlName = ""; + + private boolean jvm11orGreater = false; + private boolean jvm12orGreater = false; + private boolean jvm14orGreater = false; + Viewer(Component display, JmolAdapter modelAdapter) { Logger.debug("Viewer constructor " + this); this.display = display; @@ -212,6 +217,10 @@ zap(); //here to allow echos } + String getHtmlName() { + return htmlName; + } + boolean mustRenderFlag() { return mustRender; } @@ -230,7 +239,10 @@ } public void homePosition() { - //mouse double-click -- same as eval(reset) ** + //Eval.reset() + //DisplayPanel + //initializeModel + //was mouse double-click setCenter(null); transformManager.homePosition(); if (modelManager.modelsHaveSymmetry()) @@ -1556,7 +1568,7 @@ modelManager.setRotationCenterAndRadiusXYZ(center, false); } - void setCenter(Point3f center) { + private void setCenter(Point3f center) { center = modelManager.setRotationCenterAndRadiusXYZ(center, true); if (center != null) transformManager.setFixedRotationCenter(center); @@ -1564,6 +1576,7 @@ } void setCenter(String relativeTo, Point3f pt) { + //Eval Point3f center = modelManager.setRotationCenterAndRadiusXYZ(relativeTo, pt); scaleFitToScreen(); if (center != null) @@ -1572,6 +1585,9 @@ } void setCenterBitSet(BitSet bsCenter, boolean doScale) { + //Eval + //PickingManager.atomPicked() + //setCenterSelected Point3f center = modelManager.setCenterBitSet(bsCenter, doScale); transformManager.setFixedRotationCenter(center); refresh(0, "Viewer:setCenterBitSet()"); @@ -1602,17 +1618,20 @@ } public void setCenterSelected() { + //DisplayPanel.DefineCenterAction BYPASSES + //==script("center selected") setCenterBitSet(selectionManager.bsSelection, true); } public void rebond() { + //PreferencesDialog modelManager.rebond(); refresh(0, "Viewer:rebond()"); } public void setBondTolerance(float bondTolerance) { + //PreferencesDialog styleManager.setBondTolerance(bondTolerance); - refresh(0, "Viewer:setBOndTolerance()"); } public float getBondTolerance() { @@ -1620,8 +1639,8 @@ } public void setMinBondDistance(float minBondDistance) { + //PreferencesDialog styleManager.setMinBondDistance(minBondDistance); - refresh(0, "Viewer:setMinBondDistance()"); } public float getMinBondDistance() { @@ -1758,6 +1777,7 @@ static Hashtable dataValues = new Hashtable(); public void setData(String type, String[] data) { + //Eval if (type == null) { dataValues.clear(); return; @@ -1800,11 +1820,13 @@ } public void autoHbond() { + //Eval BitSet bs = getSelectionSet(); autoHbond(bs, bs); } public void autoHbond(BitSet bsFrom, BitSet bsTo) { + //Eval modelManager.autoHbond(bsFrom, bsTo); } @@ -1812,15 +1834,35 @@ return modelManager.hbondsAreVisible(getDisplayModelIndex()); } - public void recalculateStructure(BitSet bsSelected) { - modelManager.recalculateStructure(bsSelected); + public boolean havePartialCharges() { + return modelManager.havePartialCharges(); } + UnitCell getCurrentUnitCell() { + return modelManager.getUnitCell(getDisplayModelIndex()); + } + + Point3f getCurrentUnitCellOffset() { + return modelManager.getUnitCellOffset(getDisplayModelIndex()); + } + + void setCurrentUnitCellOffset(int offset) { + //Eval + modelManager.setUnitCellOffset(getDisplayModelIndex(), offset); + } + + void setCurrentUnitCellOffset(Point3f pt) { + //Eval + modelManager.setUnitCellOffset(getDisplayModelIndex(), pt); + } + + /***************************************************************************** * delegated to MeasurementManager ****************************************************************************/ public void clearMeasurements() { + //Eval, app MeasurementTable, clear() setShapeProperty(JmolConstants.SHAPE_MEASURES, "clear", null); refresh(0, "Viewer:clearMeasurements()"); } @@ -1858,6 +1900,7 @@ void defineMeasurement(Vector monitorExpressions, float[] rangeMinMax, boolean isDelete, boolean isAllConnected, boolean isShowHide, boolean isHidden) { + //Eval.monitor() setShapeProperty(JmolConstants.SHAPE_MEASURES, "setConnected", new Boolean( isAllConnected)); setShapeProperty(JmolConstants.SHAPE_MEASURES, "setRange", rangeMinMax); @@ -1868,43 +1911,56 @@ } public void deleteMeasurement(int i) { + //app MeasurementTable setShapeProperty(JmolConstants.SHAPE_MEASURES, "delete", new Integer(i)); } void deleteMeasurement(int[] atomCountPlusIndices) { + //Eval setShapeProperty(JmolConstants.SHAPE_MEASURES, "delete", atomCountPlusIndices); } public void showMeasurement(int[] atomCountPlusIndices, boolean isON) { + //Eval setShapeProperty(JmolConstants.SHAPE_MEASURES, isON ? "show" : "hide", atomCountPlusIndices); refresh(0, "Viewer:clearMeasurements()"); } public void hideMeasurements(boolean isOFF) { + //Eval setShapeProperty(JmolConstants.SHAPE_MEASURES, "hideAll", new Boolean(isOFF)); refresh(0, "setShowMeasurements()"); } void toggleMeasurement(int[] atomCountPlusIndices) { + //Eval, MouseManager, PickingManager setShapeProperty(JmolConstants.SHAPE_MEASURES, "toggle", atomCountPlusIndices); } - void clearAllMeasurements() { - setShapeProperty(JmolConstants.SHAPE_MEASURES, "clear", null); - } - // /////////////////////////////////////////////////////////////// // delegated to RepaintManager // /////////////////////////////////////////////////////////////// + void repaint() { + //from RepaintManager + display.repaint(); + } + void setAnimationDirection(int direction) {// 1 or -1 + //Eval repaintManager.setAnimationDirection(direction); } + void reverseAnimation() { + //Eval + repaintManager.reverseAnimation(); + } + + int getAnimationDirection() { return repaintManager.animationDirection; } @@ -1914,6 +1970,8 @@ } public void setAnimationFps(int fps) { + //Eval + //app AtomSetChooser repaintManager.setAnimationFps(fps); } @@ -1923,6 +1981,8 @@ void setAnimationReplayMode(int replay, float firstFrameDelay, float lastFrameDelay) { + //Eval + // 0 means once // 1 means loop // 2 means palindrome @@ -1935,6 +1995,7 @@ } void setAnimationOn(boolean animationOn) { + //Eval boolean wasAnimating = repaintManager.animationOn; if (animationOn == wasAnimating) return; @@ -1942,6 +2003,7 @@ } void resumeAnimation() { + //Eval if (repaintManager.animationOn) { Logger.debug("animation is ON in resumeAnimation"); return; @@ -1951,6 +2013,7 @@ } void pauseAnimation() { + //Eval if (!repaintManager.animationOn || repaintManager.animationPaused) { return; } @@ -1971,21 +2034,26 @@ } void setAnimationNext() { + //Eval if (repaintManager.setAnimationNext()) refresh(0, "Viewer:setAnimationNext()"); } void setAnimationPrevious() { + //Eval if (repaintManager.setAnimationPrevious()) refresh(0, "Viewer:setAnimationPrevious()"); } void rewindAnimation() { + //Eval repaintManager.rewindAnimation(); refresh(0, "Viewer:rewindAnimation()"); } void setDisplayModelIndex(int modelIndex) { + //Eval + //initializeModel repaintManager.setDisplayModelIndex(modelIndex); } @@ -1997,6 +2065,8 @@ } void setBackgroundModelIndex(int modelIndex) { + //Eval + //initializeModel repaintManager.setBackgroundModelIndex(modelIndex); } @@ -2016,6 +2086,7 @@ } void setInMotion(boolean inMotion) { + //MouseManager, TransformManager // Logger.debug("viewer.setInMotion("+inMotion+")"); if (wasInMotion ^ inMotion) { if (inMotion) @@ -2029,10 +2100,6 @@ return repaintManager.inMotion; } - Image takeSnapshot() { - return repaintManager.takeSnapshot(); - } - public void pushHoldRepaint() { repaintManager.pushHoldRepaint(); } @@ -2042,6 +2109,7 @@ } public void refresh() { + //Draw, pauseScriptExecution repaintManager.refresh(); } @@ -2194,7 +2262,13 @@ return scriptManager.addScript(strScript, false, false); } + boolean usingScriptQueue() { + return scriptManager.useQueue; + } + public void clearScriptQueue() { + //Eval + //checkHalt ** scriptManager.clearQueue(); } @@ -2340,6 +2414,7 @@ } void setDefaultLoadScript(String script) { + //Eval global.defaultLoadScript = script; } @@ -2356,6 +2431,7 @@ } void setHbondsBackbone(boolean hbondsBackbone) { + //Eval styleManager.setHbondsBackbone(hbondsBackbone); } @@ -2364,6 +2440,7 @@ } void setHbondsSolid(boolean hbondsSolid) { + //Eval styleManager.setHbondsSolid(hbondsSolid); } @@ -2372,6 +2449,7 @@ } public void setMarBond(short marBond) { + //StyleManager.setCommonDefaults, setRasmolDefaults styleManager.setMarBond(marBond); setShapeSize(JmolConstants.SHAPE_STICKS, marBond * 2); } @@ -2395,26 +2473,28 @@ } void setLabel(String strLabel) { + //Eval if (strLabel != null) // force the class to load and display setShapeSize(JmolConstants.SHAPE_LABELS, styleManager.pointsLabelFontSize); setShapeProperty(JmolConstants.SHAPE_LABELS, "label", strLabel); } void togglePickingLabel(int atomIndex) { - if (atomIndex != -1) { - // hack to force it to load - setShapeSize(JmolConstants.SHAPE_LABELS, styleManager.pointsLabelFontSize); - modelManager.setShapeProperty(JmolConstants.SHAPE_LABELS, "pickingLabel", - new Integer(atomIndex), null); - refresh(0, "Viewer:"); - } + //PickingManage.atomPicked ** + if (atomIndex < 0) + return; + // hack to force it to load + setShapeSize(JmolConstants.SHAPE_LABELS, styleManager.pointsLabelFontSize); + modelManager.setShapeProperty(JmolConstants.SHAPE_LABELS, "pickingLabel", + new Integer(atomIndex), null); + refresh(0, "Viewer:"); } BitSet getBitSetSelection() { return selectionManager.bsSelection; } - void setShapeShow(int shapeID, boolean show) { + private void setShapeShow(int shapeID, boolean show) { setShapeSize(shapeID, show ? -1 : 0); } @@ -2427,10 +2507,15 @@ } void setShapeSize(int shapeID, int size) { + //Eval - many + //StyleManager.setCrystallographicDefaults + //Viewer - many setShapeSize(shapeID, size, selectionManager.bsSelection); } void setShapeSize(int shapeID, int size, BitSet bsAtoms) { + //above, + //Eval.configuration modelManager.setShapeSize(shapeID, size, bsAtoms); refresh(0, "Viewer:setShapeSize(" + shapeID + "," + size + ")"); } @@ -2440,6 +2525,8 @@ } void setShapeProperty(int shapeID, String propertyName, Object value) { + //Eval + //many local /* * Logger.debug("JmolViewer.setShapeProperty("+ @@ -2453,19 +2540,12 @@ refresh(0, "Viewer:setShapeProperty()"); } - void setShapeProperty(int shapeID, String propertyName, int value) { - setShapeProperty(shapeID, propertyName, new Integer(value)); - } - void setShapePropertyArgb(int shapeID, String propertyName, int argb) { + //Eval setShapeProperty(shapeID, propertyName, argb == 0 ? null : new Integer( argb | 0xFF000000)); } - void setShapeColorProperty(int shapeType, int argb) { - setShapePropertyArgb(shapeType, "color", argb); - } - Object getShapeProperty(int shapeType, String propertyName) { return modelManager.getShapeProperty(shapeType, propertyName, Integer.MIN_VALUE); @@ -2495,6 +2575,7 @@ } void setRasmolHydrogenSetting(boolean b) { + //Eval global.rasmolHydrogenSetting = b; } @@ -2503,6 +2584,7 @@ } void setRasmolHeteroSetting(boolean b) { + //Eval global.rasmolHeteroSetting = b; } @@ -2524,12 +2606,14 @@ } void clearClickCount() { + //MouseManager.clearclickCount() selectionManager.setHideNotSelected(false); selectionManager.hide(null); mouseManager.clearClickCount(); } void setPickingMode(int pickingMode) { + //Eval pickingManager.setPickingMode(pickingMode); } @@ -2538,6 +2622,7 @@ } void setPickingStyle(int pickingStyle) { + //Eval pickingManager.setPickingStyle(pickingStyle); } @@ -2560,6 +2645,7 @@ } void setCallbackFunction(String callbackType, String callbackFunction) { + //Eval statusManager.setCallbackFunction(callbackType, callbackFunction); } @@ -2625,6 +2711,9 @@ } public void showUrl(String urlString) { + //applet.Jmol + //app Jmol + //StatusManager if (urlString.indexOf(":") < 0) { String base = fileManager.getAppletDocumentBase(); if (base == "") @@ -2641,10 +2730,12 @@ } void showConsole(boolean showConsole) { + //Eval statusManager.showConsole(showConsole); } void clearConsole() { + //Eval statusManager.clearConsole(); } @@ -2660,6 +2751,7 @@ ****************************************************************************/ public boolean getBooleanProperty(String key) { + //JmolPopup if (key.equalsIgnoreCase("hideNotSelected")) return selectionManager.getHideNotSelected(); if (key.equalsIgnoreCase("colorRasmol")) @@ -2709,6 +2801,7 @@ } public void setBooleanProperty(String key, boolean value) { + //Eval while (true) { if (key.equalsIgnoreCase("hideNotSelected")) { setHideNotSelected(value); @@ -2878,7 +2971,7 @@ return global.dotSurfaceFlag; } - void setDotSurfaceFlag(boolean TF) { + private void setDotSurfaceFlag(boolean TF) { global.dotSurfaceFlag = TF; } @@ -2886,7 +2979,7 @@ return global.dotsSelectedOnlyFlag; } - void setDotsSelectedOnlyFlag(boolean TF) { + private void setDotsSelectedOnlyFlag(boolean TF) { global.dotsSelectedOnlyFlag = TF; } @@ -2894,7 +2987,7 @@ return global.rangeSelected; } - void setRangeSelected(boolean TF) { + private void setRangeSelected(boolean TF) { global.rangeSelected = TF; } @@ -2903,6 +2996,7 @@ } void setWindowCentered(boolean TF) { + //stateManager modelManager.setWindowCentered(TF); } @@ -2910,7 +3004,7 @@ return global.adjustCameraFlag; } - void setAdjustCamera(boolean TF) { + private void setAdjustCamera(boolean TF) { global.adjustCameraFlag = TF; } @@ -2918,11 +3012,12 @@ return global.allowCameraMoveFlag; } - void setAllowCameraMove(boolean TF) { + private void setAllowCameraMove(boolean TF) { global.allowCameraMoveFlag = TF; } void setSolventProbeRadius(float radius) { + //Eval global.solventProbeRadius = radius; } @@ -2935,6 +3030,7 @@ } void setSolventOn(boolean isOn) { + //Eval global.solventOn = isOn; } @@ -2942,11 +3038,11 @@ return global.solventOn; } - void setAllowStatusReporting(boolean TF) { + private void setAllowStatusReporting(boolean TF) { statusManager.setAllowStatusReporting(TF); } - void setTestFlag1(boolean value) { + private void setTestFlag1(boolean value) { global.testFlag1 = value; } @@ -2954,36 +3050,43 @@ return global.testFlag1; } - void setTestFlag2(boolean value) { - global.testFlag2 = value; - } - boolean getTestFlag2() { return global.testFlag2; } - void setTestFlag3(boolean value) { - global.testFlag3 = value; + private void setTestFlag2(boolean value) { + global.testFlag2 = value; } boolean getTestFlag3() { return global.testFlag3; } - void setTestFlag4(boolean value) { - global.testFlag4 = value; + private void setTestFlag3(boolean value) { + global.testFlag3 = value; } boolean getTestFlag4() { return global.testFlag4; } + private void setTestFlag4(boolean value) { + global.testFlag4 = value; + } + public void setPerspectiveDepth(boolean perspectiveDepth) { + //setBooleanProperty + //StyleManager.setCrystallographicDefaults + //app DisplayPanel + //app preferences dialog transformManager.setPerspectiveDepth(perspectiveDepth); refresh(0, "Viewer:setPerspectiveDepth()"); } public void setAxesOrientationRasmol(boolean axesOrientationRasmol) { + //app PreferencesDialog + //StyleManager + //setBooleanproperty transformManager.setAxesOrientationRasmol(axesOrientationRasmol); refresh(0, "Viewer:setAxesOrientationRasmol()"); } @@ -2992,13 +3095,15 @@ return transformManager.axesOrientationRasmol; } - void setAxesModeMolecular(boolean TF) { + private void setAxesModeMolecular(boolean TF) { global.axesMode = (TF ? JmolConstants.AXES_MODE_MOLECULAR : JmolConstants.AXES_MODE_BOUNDBOX); axesAreTainted = true; } void setAxesModeUnitCell(boolean TF) { + //StyleManager + //setBooleanproperty global.axesMode = (TF ? JmolConstants.AXES_MODE_UNITCELL : JmolConstants.AXES_MODE_BOUNDBOX); axesAreTainted = true; @@ -3008,7 +3113,7 @@ return global.axesMode; } - void setDisplayCellParameters(boolean displayCellParameters) { + private void setDisplayCellParameters(boolean displayCellParameters) { global.displayCellParameters = displayCellParameters; } @@ -3020,15 +3125,14 @@ return transformManager.getPerspectiveDepth(); } - void setCameraDepth(float depth) { - transformManager.setCameraDepth(depth); - } - float getCameraDepth() { return transformManager.getCameraDepth(); } public void setSelectionHaloEnabled(boolean selectionHaloEnabled) { + //app DisplayPanel + //Eval + //setBooleanProperty loadShape(JmolConstants.SHAPE_HALOS); modelManager.setSelectionHaloEnabled(selectionHaloEnabled); } @@ -3038,6 +3142,7 @@ } void setBondSelectionModeOr(boolean bondSelectionModeOr) { + //Eval global.bondSelectionModeOr = bondSelectionModeOr; refresh(0, "Viewer:setBondSelectionModeOr()"); } @@ -3050,7 +3155,7 @@ return global.chainCaseSensitive; } - void setChainCaseSensitive(boolean chainCaseSensitive) { + private void setChainCaseSensitive(boolean chainCaseSensitive) { global.chainCaseSensitive = chainCaseSensitive; } @@ -3058,7 +3163,7 @@ return global.ribbonBorder; } - void setRibbonBorder(boolean borderOn) { + private void setRibbonBorder(boolean borderOn) { global.ribbonBorder = borderOn; } @@ -3066,7 +3171,7 @@ return global.cartoonRocketFlag; } - void setCartoonRocketFlag(boolean TF) { + private void setCartoonRocketFlag(boolean TF) { global.cartoonRocketFlag = TF; } @@ -3074,15 +3179,18 @@ return global.hideNameInPopup; } - void setHideNameInPopup(boolean hideNameInPopup) { + private void setHideNameInPopup(boolean hideNameInPopup) { global.hideNameInPopup = hideNameInPopup; } void setSsbondsBackbone(boolean ssbondsBackbone) { + //Eval styleManager.setSsbondsBackbone(ssbondsBackbone); } public void setAutoBond(boolean ab) { + //app PreferencesDialog + //setBooleanProperties modelManager.setAutoBond(ab); refresh(0, "Viewer:setAutoBond()"); } @@ -3096,6 +3204,8 @@ // ////////////////////////////////////////////////////////////// void setGreyscaleRendering(boolean greyscaleRendering) { + //TranformManager (set stereomode) + //setBooleanProperty global.greyscaleRendering = greyscaleRendering; g3d.setGreyscaleMode(greyscaleRendering); refresh(0, "Viewer:setGreyscaleRendering()"); @@ -3105,7 +3215,7 @@ return global.greyscaleRendering; } - void setLabelsFrontFlag(boolean labelsFrontFlag) { + private void setLabelsFrontFlag(boolean labelsFrontFlag) { global.labelsFrontFlag = labelsFrontFlag; } @@ -3113,7 +3223,7 @@ return global.labelsFrontFlag; } - void setLabelsGroupFlag(boolean labelsGroupFlag) { + private void setLabelsGroupFlag(boolean labelsGroupFlag) { global.labelsGroupFlag = labelsGroupFlag; } @@ -3121,7 +3231,7 @@ return global.labelsGroupFlag; } - void setDisablePopupMenu(boolean disablePopupMenu) { + private void setDisablePopupMenu(boolean disablePopupMenu) { global.disablePopupMenu = disablePopupMenu; } @@ -3129,7 +3239,7 @@ return global.disablePopupMenu; } - void setForceAutoBond(boolean forceAutoBond) { + private void setForceAutoBond(boolean forceAutoBond) { global.forceAutoBond = forceAutoBond; } @@ -3138,60 +3248,18 @@ } // /////////////////////////////////////////////////////////////// - // Frame - // /////////////////////////////////////////////////////////////// - /* - * private BondIterator bondIteratorSelected(byte bondType) { return - * getFrame().getBondIterator(bondType, selectionManager.bsSelection); } - */ - final AtomIterator nullAtomIterator = new NullAtomIterator(); - - static class NullAtomIterator implements AtomIterator { - public boolean hasNext() { - return false; - } - - public Atom next() { - return null; - } - - public void release() { - } - } - - final BondIterator nullBondIterator = new NullBondIterator(); - - static class NullBondIterator implements BondIterator { - public boolean hasNext() { - return false; - } - - public int nextIndex() { - return -1; - } - - public Bond next() { - return null; - } - } - - // /////////////////////////////////////////////////////////////// // delegated to StyleManager // /////////////////////////////////////////////////////////////// - /* - * for rasmol compatibility with continued menu operation: - if it is from the - * menu & nothing selected * set the setting * apply to all - if it is from - * the menu and something is selected * apply to selection - if it is from a - * script * apply to selection * possibly set the setting for some things - */ - public void setPercentVdwAtom(int percentVdwAtom) { + //PreferenceDialog + //StyleManager styleManager.setPercentVdwAtom(percentVdwAtom); setShapeSize(JmolConstants.SHAPE_BALLS, -percentVdwAtom); } public void setFrankOn(boolean frankOn) { + //applet, initializeModel styleManager.setFrankOn(frankOn); setShapeSize(JmolConstants.SHAPE_FRANK, frankOn ? -1 : 0); } @@ -3213,6 +3281,7 @@ } void setModeMultipleBond(byte modeMultipleBond) { + //not implemented styleManager.setModeMultipleBond(modeMultipleBond); refresh(0, "Viewer:setModeMultipleBond()"); } @@ -3222,6 +3291,8 @@ } void setShowMultipleBonds(boolean showMultipleBonds) { + //Eval.setBonds + //StyleManager styleManager.setShowMultipleBonds(showMultipleBonds); refresh(0, "Viewer:setShowMultipleBonds()"); } @@ -3231,6 +3302,9 @@ } public void setShowHydrogens(boolean showHydrogens) { + //DisplayPanel.HydrogensAction + //PreferncesDialog + //setBooleanProperty styleManager.setShowHydrogens(showHydrogens); refresh(0, "Viewer:setShowHydrogens()"); } @@ -3240,6 +3314,8 @@ } public void setShowBbcage(boolean showBbcage) { + //DisplayPanel + //PreferencesDialog setShapeShow(JmolConstants.SHAPE_BBCAGE, showBbcage); } @@ -3248,6 +3324,8 @@ } public void setShowAxes(boolean showAxes) { + //DisplayPanel + //PreferencesDialog setShapeShow(JmolConstants.SHAPE_AXES, showAxes); } @@ -3256,15 +3334,18 @@ } public void setShowMeasurements(boolean showMeasurements) { + //DisplayPanel + //PreferencesDialog + //setbooleanProperty styleManager.setShowMeasurements(showMeasurements); refresh(0, "setShowMeasurements()"); } - public void setMeasureAllModels(boolean TF) { + private void setMeasureAllModels(boolean TF) { global.measureAllModels = TF; } - public boolean getMeasureAllModelsFlag() { + boolean getMeasureAllModelsFlag() { return global.measureAllModels; } @@ -3272,20 +3353,9 @@ return styleManager.showMeasurements; } - void setShowMeasurementLabels(boolean showMeasurementLabels) { - styleManager.setShowMeasurementLabels(showMeasurementLabels); - refresh(0, "Viewer:setShowMeasurementLabels()"); - } - - boolean getShowMeasurementLabels() { - return styleManager.showMeasurementLabels; - } - - /* - * short getMeasurementMad() { return styleManager.measurementMad; } - */ - boolean setMeasureDistanceUnits(String units) { + //StyleManager + //Eval if (!styleManager.setMeasureDistanceUnits(units)) return false; setShapeProperty(JmolConstants.SHAPE_MEASURES, "reformatDistances", null); @@ -3297,14 +3367,18 @@ } public void setJmolDefaults() { + //applet, app initApplication, initVariables styleManager.setJmolDefaults(); } public void setRasmolDefaults() { + //applet, app initApplication, initVariables styleManager.setRasmolDefaults(); } void setZeroBasedXyzRasmol(boolean zeroBasedXyzRasmol) { + //StyleManager + //setBooleanProperty styleManager.setZeroBasedXyzRasmol(zeroBasedXyzRasmol); modelManager.setZeroBased(); } @@ -3314,11 +3388,13 @@ } void setLabelFontSize(int points) { + //not implemented styleManager.setLabelFontSize(points); refresh(0, "Viewer:setLabelFontSize()"); } void setLabelOffset(int xOffset, int yOffset) { + //not implemented styleManager.setLabelOffset(xOffset, yOffset); refresh(0, "Viewer:setLabelOffset()"); } @@ -3464,10 +3540,12 @@ // ////////////////////////////////////////////////////////////// void setStereoMode(int stereoMode) { + //Eval transformManager.setStereoMode(stereoMode); } void setStereoMode(int[] twoColors) { + //Eval transformManager.setStereoMode(twoColors); } @@ -3480,6 +3558,7 @@ } void setStereoDegrees(float degrees) { + //Eval transformManager.setStereoDegrees(degrees); } @@ -3555,7 +3634,10 @@ return g3d.getHexColorFromIndex(colix); } + ////////////////////////////////////////////////// + void setModelVisibility() { + //Eval modelManager.setModelVisibility(); } @@ -3566,15 +3648,6 @@ axesAreTainted = TF; } - public void setSyncDriver(int syncMode) { - Logger.debug(htmlName + " viewer setting sync driver " + syncMode); - statusManager.setSyncDriver(syncMode); - } - - public int getSyncMode() { - return statusManager.getSyncMode(); - } - void checkObjectClicked(int x, int y, int modifiers) { modelManager.checkObjectClicked(x, y, modifiers); } @@ -3617,19 +3690,21 @@ } void setPickingSpinRate(int rate) { + //Eval if (rate < 1) rate = 1; global.pickingSpinRate = rate; } void startSpinningAxis(int atomIndex1, int atomIndex2, boolean isClockwise) { - // picking manager set picking SPIN + // PickingManager.setAtomPicked "set picking SPIN" Point3f pt1 = modelManager.getAtomPoint3f(atomIndex1); Point3f pt2 = modelManager.getAtomPoint3f(atomIndex2); startSpinningAxis(pt1, pt2, isClockwise); } void startSpinningAxis(Point3f pt1, Point3f pt2, boolean isClockwise) { + //Draw.checkObjectClicked ** could be difficult //from draw object click if (getSpinOn()) { setSpinOn(false); @@ -3656,7 +3731,8 @@ return; } - public void setDipoleScale(float scale) { + void setDipoleScale(float scale) { + //Eval loadShape(JmolConstants.SHAPE_DIPOLES); setShapeProperty(JmolConstants.SHAPE_DIPOLES, "dipoleVectorScale", new Float(scale)); @@ -3667,6 +3743,7 @@ } void setDefaultLattice(Point3f ptLattice) { + //Eval global.setDefaultLattice(ptLattice); } @@ -3675,14 +3752,17 @@ } public void setAtomCoord(int atomIndex, float x, float y, float z) { + //not implemented modelManager.setAtomCoord(atomIndex, x, y, z); } public void setAtomCoordRelative(int atomIndex, float x, float y, float z) { + //not implemented modelManager.setAtomCoordRelative(atomIndex, x, y, z); } public void setAtomCoordRelative(Point3f offset) { + //Eval modelManager.setAtomCoordRelative(offset, selectionManager.bsSelection); } @@ -3695,6 +3775,7 @@ } void setHelpPath(String url) { + //Eval global.helpPath = url; } @@ -3751,6 +3832,10 @@ return commandHistory.getSetHistory(howFarBack); } + // /////////////////////////////////////////////////////////////// + // image export + // /////////////////////////////////////////////////////////////// + void createImage(String type_name) { if (type_name == null) return; @@ -3770,25 +3855,16 @@ setModelVisibility(); statusManager.createImage(file, type, quality); } - - public boolean havePartialCharges() { - return modelManager.havePartialCharges(); + + //////////unimplemented + + public void setSyncDriver(int syncMode) { + //it was an idea... + Logger.debug(htmlName + " viewer setting sync driver " + syncMode); + statusManager.setSyncDriver(syncMode); } - UnitCell getCurrentUnitCell() { - return modelManager.getUnitCell(getDisplayModelIndex()); + public int getSyncMode() { + return statusManager.getSyncMode(); } - - Point3f getCurrentUnitCellOffset() { - return modelManager.getUnitCellOffset(getDisplayModelIndex()); - } - - void setCurrentUnitCellOffset(int offset) { - modelManager.setUnitCellOffset(getDisplayModelIndex(), offset); - } - - void setCurrentUnitCellOffset(Point3f pt) { - modelManager.setUnitCellOffset(getDisplayModelIndex(), pt); - } - } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-11 21:38:42 UTC (rev 5918) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-12 03:35:10 UTC (rev 5919) @@ -311,7 +311,7 @@ dropper.addPropertyChangeListener (new PropertyChangeListener () { public void propertyChange (PropertyChangeEvent evt) { - System.out.println("Drop triggered..."); + //System.out.println("Drop triggered..."); f.setCursor (Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR)); if (evt.getPropertyName ().equals (FileDropper.FD_PROPERTY_FILENAME)) { @@ -1493,11 +1493,18 @@ } public void notifyFrameChanged(int frameNo) { + // Note: twos-complement. To get actual frame number, use + // Math.max(frameNo, -2 - frameNo) + // -1 means all frames are now displayed + + boolean isAnimationRunning = (frameNo <= -2); + if (jmolpopup == null || isAnimationRunning) + return; jmolpopup.updateComputedMenus(); } public void notifyScriptStart(String statusMessage, String additionalInfo) { - System.out.println("notifyScriptStart:" + statusMessage + (additionalInfo == "" ? "" : additionalInfo)); + //System.out.println("notifyScriptStart:" + statusMessage + (additionalInfo == "" ? "" : additionalInfo)); } public void sendConsoleEcho(String strEcho) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-10 02:11:39
|
Revision: 5886 http://svn.sourceforge.net/jmol/?rev=5886&view=rev Author: hansonr Date: 2006-10-09 19:11:14 -0700 (Mon, 09 Oct 2006) Log Message: ----------- popup menu cleanup, reorganization Modified Paths: -------------- trunk/Jmol/src/org/jmol/api/JmolViewer.java trunk/Jmol/src/org/jmol/popup/JmolPopup.java trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/viewer/ColorManager.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Frame.java trunk/Jmol/src/org/jmol/viewer/ModelManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/api/JmolViewer.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolViewer.java 2006-10-10 01:59:55 UTC (rev 5885) +++ trunk/Jmol/src/org/jmol/api/JmolViewer.java 2006-10-10 02:11:14 UTC (rev 5886) @@ -139,6 +139,10 @@ abstract public int getGroupCount(); abstract public int getChainCount(); abstract public int getPolymerCount(); + abstract public int getAtomCountInModel(int modelIndex); + abstract public int getBondCountInModel(int modelIndex); + abstract public int getGroupCountInModel(int modelIndex); + abstract public int getChainCountInModel(int modelIindex); abstract public int getPolymerCountInModel(int modelIndex); abstract public void setModeMouse(int modeMouse); Modified: trunk/Jmol/src/org/jmol/popup/JmolPopup.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-10 01:59:55 UTC (rev 5885) +++ trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-10 02:11:14 UTC (rev 5886) @@ -23,8 +23,11 @@ */ package org.jmol.popup; + + import org.jmol.api.*; import org.jmol.i18n.GT; +import org.jmol.util.Logger; import org.jmol.viewer.JmolConstants; import java.awt.Component; import java.awt.event.ActionEvent; @@ -42,6 +45,7 @@ Component jmolComponent; MenuItemListener mil; + Object FRAMESbyModelComputedMenu; Object elementsComputedMenu; Object aaresiduesComputedMenu; Object heteroComputedMenu; @@ -54,6 +58,11 @@ String nullModelSetName; String hiddenModelSetName; + Vector PDBOnly = new Vector(); + Vector UnitcellOnly = new Vector(); + Vector FramesOnly = new Vector(); + Vector VibrationOnly = new Vector(); + JmolPopup(JmolViewer viewer) { this.viewer = viewer; jmolComponent = viewer.getAwtComponent(); @@ -68,26 +77,79 @@ void build(Object popupMenu) { - addMenuItems("popupMenu", popupMenu, new PopupResourceBundle()); + addMenuItems("", "popupMenu", popupMenu, new PopupResourceBundle()); if (! viewer.isJvm12orGreater() && (consoleMenu != null)) enableMenu(consoleMenu, false); } + boolean isPDB; + boolean isSymmetry; + boolean isUnitCell; + boolean isMultiFrame; + boolean isVibration; + int modelIndex; + public void updateComputedMenus() { + modelIndex = viewer.getDisplayModelIndex(); + Hashtable info = viewer.getModelSetAuxiliaryInfo(); + isPDB = checkBoolean(info, "isPDB"); + isSymmetry = checkBoolean(info, "someModelsHaveSymmetry"); + isUnitCell = checkBoolean(info, "someModelsHaveUnitcells"); + isMultiFrame = (viewer.getModelCount() > 1); + isVibration = (viewer.modelHasVibrationVectors(modelIndex)); + updateElementsComputedMenu(viewer.getElementsPresentBitSet()); updatesurfMEP(viewer.havePartialCharges()); updateHeteroComputedMenu(viewer.getHeteroList()); - updateSurfMoComputedMenu((Hashtable) viewer.getModelAuxiliaryInfo(viewer.getDisplayModelIndex(),"moData")); + updateSurfMoComputedMenu((Hashtable) viewer.getModelAuxiliaryInfo(modelIndex,"moData")); updateAaresiduesComputedMenu(viewer.getGroupsPresentBitSet()); + updateFRAMESbyModelComputedMenu(); updateModelSetInfoMenu(); + updateFileTypeDependentMenus(); } + boolean checkBoolean(Hashtable info, String key) { + if (info == null || !info.containsKey(key)) + return false; + return ((Boolean)(info.get(key))).booleanValue(); + } + void updateFileTypeDependentMenus() { + for (int i = 0; i < PDBOnly.size(); i++) + enableMenu(PDBOnly.get(i), isPDB); + for (int i = 0; i < UnitcellOnly.size(); i++) + enableMenu(UnitcellOnly.get(i), isUnitCell); + for (int i = 0; i < FramesOnly.size(); i++) + enableMenu(FramesOnly.get(i), isMultiFrame); + for (int i = 0; i < VibrationOnly.size(); i++) + enableMenu(VibrationOnly.get(i), isVibration); + } + void updatesurfMEP(boolean haveCharges) { if (surfMEP == null) return; enableMenuItem(surfMEP, haveCharges); } + void updateFRAMESbyModelComputedMenu() { + if (FRAMESbyModelComputedMenu == null) + return; + enableMenu(FRAMESbyModelComputedMenu, false); + setLabel(FRAMESbyModelComputedMenu, (modelIndex < 0 ? GT._("Models/Frames") : getModelLabel())); + removeAll(FRAMESbyModelComputedMenu); + int modelCount = viewer.getModelCount(); + if (modelCount < 2) + return; + enableMenu(FRAMESbyModelComputedMenu, true); + addMenuItemWithId(FRAMESbyModelComputedMenu, "all", "frame 0", null); + for (int i = 0; i < modelCount; i++) { + String script = "model " + viewer.getModelNumber(i); + String entryName = script + viewer.getModelName(i); + if (entryName.length() > 30) + entryName = entryName.substring(0, 20) + "..."; + addMenuItemWithId(FRAMESbyModelComputedMenu, entryName, script, null); + } + } + void updateSurfMoComputedMenu(Hashtable moData) { if (surfMoComputedMenu == null) return; @@ -104,7 +166,7 @@ String entryName = "#" + (i + 1) +" " + ((Hashtable)(mos.get(i))).get("energy"); String script = "mo " + (i + 1); - addMenuItem(surfMoComputedMenu, entryName, script); + addMenuItemWithId(surfMoComputedMenu, entryName, script, null); } } @@ -120,8 +182,7 @@ String elementName = JmolConstants.elementNameFromNumber(i); String elementSymbol = JmolConstants.elementSymbolFromNumber(i); String entryName = elementSymbol + " - " + elementName; - String script = "select " + elementName; - addMenuItem(elementsComputedMenu, entryName, script); + addMenuItemWithId(elementsComputedMenu, entryName, elementName, null); } } for (int i = JmolConstants.firstIsotope; i < JmolConstants.altElementMax; ++i) { @@ -131,8 +192,7 @@ String elementName = JmolConstants.elementNameFromNumber(n); String elementSymbol = JmolConstants.elementSymbolFromNumber(n); String entryName = elementSymbol + " - " + elementName; - String script = "select " + elementName; - addMenuItem(elementsComputedMenu, entryName, script); + addMenuItemWithId(elementsComputedMenu, entryName, elementName, null); } } enableMenu(elementsComputedMenu, true); @@ -151,9 +211,8 @@ String heteroName = (String) htHetero.get(heteroCode); if (heteroName.length() > 20) heteroName = heteroName.substring(0,20) + "..."; - String entryName = heteroCode + " - " + heteroName; - String script = "select " + heteroCode; - addMenuItem(heteroComputedMenu, entryName, script); + String entryName = heteroCode + " - " + heteroName; + addMenuItemWithId(heteroComputedMenu, entryName, heteroCode, null); n++; } enableMenu(heteroComputedMenu, (n > 0)); @@ -169,8 +228,7 @@ for (int i = 1; i < JmolConstants.GROUPID_AMINO_MAX; ++i) { if (groupsPresentBitSet.get(i)) { String aaresidueName = JmolConstants.predefinedGroup3Names[i]; - String script = "select " + aaresidueName; - addMenuItem(aaresiduesComputedMenu, aaresidueName, script); + addMenuItemWithId(aaresiduesComputedMenu, aaresidueName, null, null); } } enableMenu(aaresiduesComputedMenu, true); @@ -186,30 +244,40 @@ if (modelSetName == null) return; renameMenu(modelSetInfoMenu, - viewer.getBooleanProperty("hideNameInPopup") - ? hiddenModelSetName : modelSetName); + viewer.getBooleanProperty("hideNameInPopup") ? hiddenModelSetName + : modelSetName); enableMenu(modelSetInfoMenu, true); - addMenuItem(modelSetInfoMenu, - GT._("atoms: {0}", new Object[] { new Integer(viewer.getAtomCount()) })); - addMenuItem(modelSetInfoMenu, - GT._("bonds: {0}", new Object[] { new Integer(viewer.getBondCount()) })); + addMenuItem(modelSetInfoMenu, GT._("atoms: {0}", + new Object[] { new Integer(viewer.getAtomCountInModel(modelIndex)) })); + addMenuItem(modelSetInfoMenu, GT._("bonds: {0}", + new Object[] { new Integer(viewer.getBondCountInModel(modelIndex)) })); addMenuSeparator(modelSetInfoMenu); - addMenuItem(modelSetInfoMenu, - GT._("groups: {0}", new Object[] { new Integer(viewer.getGroupCount()) })); - addMenuItem(modelSetInfoMenu, - GT._("chains: {0}", new Object[] { new Integer(viewer.getChainCount()) })); - addMenuItem(modelSetInfoMenu, - GT._("polymers: {0}", new Object[] { new Integer(viewer.getPolymerCount()) })); - addMenuItem(modelSetInfoMenu, - GT._("models: {0}", new Object[] { new Integer(viewer.getModelCount()) })); - if (viewer.showModelSetDownload() && - !viewer.getBooleanProperty("hideNameInPopup")) { + if (isPDB) { + addMenuItem(modelSetInfoMenu, GT._("groups: {0}", + new Object[] { new Integer(viewer.getGroupCountInModel(modelIndex)) })); + addMenuItem(modelSetInfoMenu, GT._("chains: {0}", + new Object[] { new Integer(viewer.getChainCountInModel(modelIndex)) })); + addMenuItem(modelSetInfoMenu, GT._("polymers: {0}", + new Object[] { new Integer(viewer.getPolymerCountInModel(modelIndex)) })); addMenuSeparator(modelSetInfoMenu); - addMenuItem(modelSetInfoMenu, - viewer.getModelSetFileName(), viewer.getModelSetPathName()); } + if (isMultiFrame) { + addMenuItem(modelSetInfoMenu, GT._("models: {0}", + new Object[] { new Integer(viewer.getModelCount()) })); + addMenuSeparator(modelSetInfoMenu); + } + if (viewer.showModelSetDownload() + && !viewer.getBooleanProperty("hideNameInPopup")) { + addMenuItemWithId(modelSetInfoMenu, viewer.getModelSetFileName(), viewer + .getModelSetPathName(), null); + } } + String getModelLabel() { + return GT._("model: {0}", + new Object[] { (modelIndex + 1) + "/" + viewer.getModelCount() }); + } + private void updateAboutSubmenu() { if (aboutMenu == null) return; @@ -249,20 +317,63 @@ return num / (1024*1024); } - private void addMenuItems(String key, Object menu, + Hashtable colorMenus = new Hashtable(); + + private void addMenuItems(String parentId, String key, Object menu, PopupResourceBundle popupResourceBundle) { + String id = parentId + " " + key; String value = popupResourceBundle.getStructure(key); + Logger.debug(id + " --- " + value); if (value == null) { - addMenuItem(menu, "#" + key); + addMenuItemWithId(menu, "#" + key, "", ""); return; } + boolean isColorScheme = false; + String colorSet = ""; + String colorCode = ""; StringTokenizer st = new StringTokenizer(value); while (st.hasMoreTokens()) { Object newMenu = null; String item = st.nextToken(); + if (item.equals("@")) { + isColorScheme = true; + continue; + } + if (isColorScheme) { + colorCode += item; + if (colorSet.length() > 0) + colorSet += " -"; + if (item.equals("INHERIT")) { + colorSet += " " + PopupResourceBundle.INHERIT; + } else if (item.equals("COLOR")) { + colorSet += " " + PopupResourceBundle.COLOR; + } else if (item.equals("SCHEME")) { + colorSet += " " + PopupResourceBundle.SCHEME; + } else if (item.equals("TRANSLUCENCY")) { + colorSet += " " + PopupResourceBundle.TRANSLUCENCY; + } else if (item.equals("AXESCOLOR")) { + colorSet += " " + PopupResourceBundle.AXESCOLOR; + } + if (st.hasMoreTokens()) + continue; + /* + String colorList = (String) colorMenus.get(colorCode); + if (colorList == null) { + popupResourceBundle.addStructure(key, colorSet); + colorMenus.put(colorCode, colorSet); + } + */ + popupResourceBundle.addStructure(key, colorSet); + addMenuItems(parentId, key, menu, popupResourceBundle); + return; + } String word = popupResourceBundle.getWord(item); - if (item.endsWith("Menu")) { + if (item.indexOf("Menu") >= 0) { Object subMenu = newMenu(word); + ((Component) subMenu).setName(id + " " + item); + addMenuSubMenu(menu, subMenu); + + // these will need creating later: if ("elementsComputedMenu".equals(item)) elementsComputedMenu = subMenu; else if ("aaresiduesComputedMenu".equals(item)) @@ -271,57 +382,124 @@ heteroComputedMenu = subMenu; else if ("surfMoComputedMenu".equals(item)) surfMoComputedMenu = subMenu; + else if ("FRAMESbyModelComputedMenu".equals(item)) + FRAMESbyModelComputedMenu = subMenu; else - addMenuItems(item, subMenu, popupResourceBundle); - if ("aboutMenu".equals(item)) + addMenuItems(id, item, subMenu, popupResourceBundle); + + // these will need tweaking: + if ("aboutMenu".equals(item)) { aboutMenu = subMenu; - else if ("consoleMenu".equals(item)) + aboutMenuBaseCount = getMenuItemCount(subMenu); + } else if ("consoleMenu".equals(item)) { consoleMenu = subMenu; - else if ("modelSetInfoMenu".equals(item)) { + } else if ("modelSetInfoMenu".equals(item)) { nullModelSetName = word; - hiddenModelSetName = - popupResourceBundle.getWord("hiddenModelSetName"); + hiddenModelSetName = popupResourceBundle + .getWord("hiddenModelSetName"); modelSetInfoMenu = subMenu; enableMenu(modelSetInfoMenu, false); } - addMenuSubMenu(menu, subMenu); - if (subMenu == aboutMenu) - aboutMenuBaseCount = getMenuItemCount(aboutMenu); + newMenu = subMenu; } else if ("-".equals(item)) { addMenuSeparator(menu); } else if (item.endsWith("Checkbox")) { String basename = item.substring(0, item.length() - 8); - addCheckboxMenuItem(menu, word, basename); + newMenu = addCheckboxMenuItemWithId(menu, word, basename, id + " " + item); } else { - newMenu = addMenuItem(menu, word, popupResourceBundle.getStructure(item)); + String script = popupResourceBundle.getStructure(item); + if (script == null) + script = item; + newMenu = addMenuItemWithId(menu, word, script, id + " " + item); + // add a menu-path to this item for color context + // addition items that may need enabling/disabling: if ("surfMEP".equals(item)) surfMEP = newMenu; } + + // menus or menu items: + if (item.indexOf("PDB") >= 0) { + PDBOnly.add(newMenu); + } else if (item.indexOf("nitCell") >= 0) { + UnitcellOnly.add(newMenu); + } else if (item.indexOf("FRAMES") >= 0) { + FramesOnly.add(newMenu); + } else if (item.indexOf("VIBRATION") >= 0) { + VibrationOnly.add(newMenu); + } } } + + Object addMenuItemWithId(Object menu, String word, String script, String id) { + Object newMenu = addMenuItem(menu, word, script); + ((Component)newMenu).setName(id == null ? ((Component)menu).getName() : id); + return newMenu; + } + Object addCheckboxMenuItemWithId(Object menu, String entry, String basename, + String id) { + Object newMenu = addCheckboxMenuItem(menu, entry, basename); + ((Component) newMenu).setName(id == null ? ((Component)menu).getName() : id); + return newMenu; + } + Hashtable htCheckbox = new Hashtable(); void rememberCheckbox(String key, Object checkboxMenuItem) { htCheckbox.put(key, checkboxMenuItem); } + /** + * (1) setOption --> set setOption true or set setOption false + * + * @param what option to set + * @param TF true or false + */ + void setCheckBoxValue(String what, boolean TF) { + if (viewer.getBooleanProperty(what) != TF) + viewer.setBooleanProperty(what, TF); + } + class MenuItemListener implements ActionListener { public void actionPerformed(ActionEvent e) { String script = e.getActionCommand(); if (script == null || script.length() == 0) return; - if (script.startsWith("http:") || script.startsWith("file:") || - script.startsWith("/")) { + if (script.startsWith("http:") || script.startsWith("file:") + || script.startsWith("/")) { viewer.showUrl(script); return; } - viewer.script(script); + String id = ((Component) e.getSource()).getName(); + System.out.println(id + ": " + script); + if (id != null) { + if (id.indexOf(" setSpin") >= 0) { + // setSpinFooMenu + int pt = id.lastIndexOf(" setSpin"); + if (pt >= 0) + script = "set spin " + id.substring(pt + 8, id.indexOf("Menu", pt)) + " " + script; + } else if (id.indexOf(" set") >= 0) { + // setFooMenu + int pt = id.lastIndexOf(" set"); + if (pt >= 0) + script = "set " + id.substring(pt + 6, id.indexOf("Menu", pt)) + " " + script; + } else if (id.indexOf(" select") >= 0) { + // select item but not selectMenu set selectionHalos + if (script.indexOf("set") != 0) + script = "select " + script; + } else if(id.indexOf(" color") >= 0){ + // colorFooMenu + int pt = id.lastIndexOf(" color"); + if (pt >= 0) + script = "color " + id.substring(pt + 6, id.indexOf("Menu", pt)) + " " + script; + } + } + viewer.script(script); } } Object addMenuItem(Object menuItem, String entry) { - return addMenuItem(menuItem, entry, null); + return addMenuItemWithId(menuItem, entry, "", null); } public void show(int x, int y) { @@ -337,9 +515,11 @@ abstract Object addMenuItem(Object menu, String entry, String script); + abstract void setLabel(Object menu, String entry); + abstract void updateMenuItem(Object menuItem, String entry, String script); - abstract void addCheckboxMenuItem(Object menu, String entry,String basename); + abstract Object addCheckboxMenuItem(Object menu, String entry,String basename); abstract void addMenuSubMenu(Object menu, Object subMenu); @@ -368,5 +548,6 @@ // JmolPopupAwt does not implement this return 0; } + } Modified: trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java 2006-10-10 01:59:55 UTC (rev 5885) +++ trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java 2006-10-10 02:11:14 UTC (rev 5886) @@ -65,7 +65,7 @@ class CheckboxMenuItemListener implements ItemListener { public void itemStateChanged(ItemEvent e) { CheckboxMenuItem cmi = (CheckboxMenuItem)e.getSource(); - viewer.setBooleanProperty(cmi.getActionCommand(), cmi.getState()); + setCheckBoxValue(cmi.getActionCommand(), cmi.getState()); } } @@ -135,6 +135,13 @@ return mi; } + void setLabel(Object menu, String entry) { + if (menu instanceof MenuItem) + ((MenuItem) menu).setLabel(entry); + else + ((Menu) menu).setLabel(entry); + } + void updateMenuItem(Object menuItem, String entry, String script) { MenuItem mi = (MenuItem)menuItem; mi.setLabel(entry); @@ -144,12 +151,13 @@ // mi.setEnabled(script != null); } - void addCheckboxMenuItem(Object menu, String entry, String basename) { + Object addCheckboxMenuItem(Object menu, String entry, String basename) { CheckboxMenuItem cmi = new CheckboxMenuItem(entry); cmi.addItemListener(cmil); cmi.setActionCommand(basename); addToMenu(menu, cmi); rememberCheckbox(basename, cmi); + return cmi; } void addMenuSubMenu(Object menu, Object subMenu) { @@ -185,9 +193,14 @@ } void enableMenu(Object menu, boolean enable) { - ((Menu)menu).setEnabled(enable); + if (menu instanceof MenuItem) { + enableMenuItem(menu, enable); + return; + } + ((Menu)menu).setEnabled(enable); } + void enableMenuItem(Object item, boolean enable) { ((MenuItem)item).setEnabled(enable); - } + } } Modified: trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java 2006-10-10 01:59:55 UTC (rev 5885) +++ trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java 2006-10-10 02:11:14 UTC (rev 5886) @@ -31,6 +31,7 @@ import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JCheckBoxMenuItem; + import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.Enumeration; @@ -63,7 +64,7 @@ public void itemStateChanged(ItemEvent e) { //Logger.debug("CheckboxMenuItemListener() " + e.getSource()); JCheckBoxMenuItem jcmi = (JCheckBoxMenuItem)e.getSource(); - viewer.setBooleanProperty(jcmi.getActionCommand(), jcmi.getState()); + setCheckBoxValue(jcmi.getActionCommand(), jcmi.getState()); } } @@ -94,6 +95,13 @@ return jmi; } + void setLabel(Object menu, String entry) { + if (menu instanceof JMenuItem) + ((JMenuItem) menu).setLabel(entry); + else + ((JMenu) menu).setLabel(entry); + } + void updateMenuItem(Object menuItem, String entry, String script) { JMenuItem jmi = (JMenuItem)menuItem; jmi.setLabel(entry); @@ -103,12 +111,13 @@ // jmi.setEnabled(script != null); } - void addCheckboxMenuItem(Object menu, String entry, String basename) { + Object addCheckboxMenuItem(Object menu, String entry, String basename) { JCheckBoxMenuItem jcmi = new JCheckBoxMenuItem(entry); jcmi.addItemListener(cmil); jcmi.setActionCommand(basename); addToMenu(menu, jcmi); rememberCheckbox(basename, jcmi); + return jcmi; } void addMenuSubMenu(Object menu, Object subMenu) { @@ -144,6 +153,10 @@ } void enableMenu(Object menu, boolean enable) { + if (menu instanceof JMenuItem) { + enableMenuItem(menu, enable); + return; + } ((JMenu)menu).setEnabled(enable); } @@ -157,5 +170,5 @@ int availableProcessorsForNewerJvm() { return Runtime.getRuntime().availableProcessors(); - } + } } Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-10 01:59:55 UTC (rev 5885) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-10 02:11:14 UTC (rev 5886) @@ -37,6 +37,10 @@ return structure.getProperty(key); } + void addStructure(String key, String value) { + structure.setProperty(key, value); + } + String getWord(String key) { String str = words.getProperty(key); if (str == null) { @@ -44,1254 +48,730 @@ } return str; } - + // Properties to store menu structure and contents private final static Properties structure = new Properties(); private final static Properties words = new Properties(); - - private static final String[][] structureContents = { - { "popupMenu", "modelSetInfoMenu - selectMenu renderMenu labelMenu colorMenu - " + - "zoomMenu spinMenu animateMenu - " + - "measureMenu pickingMenu surfaceMenu crystalMenu optionsMenu - showMenu - " + - "aboutMenu" }, - { "selectMenu", "selectAll selectNone - " + - "proteinMenu nucleicMenu heteroMenu Carbohydrate NoneOfTheAbove - " + - "elementsComputedMenu byModelMenu byFrameMenu - " + - "invertSelection restrictToSelection" }, - { "selectAll", "select all" }, - { "selectNone", "select none" }, + final static String INHERIT = "none"; + final static String COLOR = "black white red orange yellow green cyan blue indigo violet"; + final static String SCHEME = "SchemeMenu"; + final static String TRANSLUCENCY = "opaque translucent"; + final static String AXESCOLOR = "gray salmon maroon olive slateblue gold orchid"; - { "proteinMenu", "allProtein proteinBackbone proteinSideChains - " + - "polar nonpolar - " + - "positiveCharge negativeCharge noCharge - " + - "aaresiduesComputedMenu" }, - { "allProtein", "select protein" }, - { "proteinBackbone", "select protein and backbone" }, - { "proteinSideChains", "select protein and not backbone" }, - { "polar", "select protein and polar" }, - { "nonpolar", "select protein and not polar" }, - { "positiveCharge", "select protein and basic" }, - { "negativeCharge", "select protein and acidic" }, - { "noCharge", "select protein and not (acidic,basic)" }, + private static final String[][] structureContents = { + { + "popupMenu", + "modelSetInfoMenu FRAMESbyModelComputedMenu - selectMenu colorMenu renderMenu surfaceMenu - " + + "zoomMenu spinMenu VIBRATIONMenu " + + "FRAMESanimateMenu - " + + "measureMenu pickingMenu - showConsole showMenu - " +// + "- optionsMenu " + + "aboutMenu" }, - { "nucleicMenu", "allNucleic nucleicBackbone nucleicBases - " + - "DNA RNA - " + - "A C G T U - " + - "atPairs auPairs gcPairs" }, - { "allNucleic", "select nucleic" }, - { "DNA", "select dna" }, - { "RNA", "select rna" }, - { "nucleicBackbone", "select nucleic and backbone" }, - { "nucleicBases", "select nucleic and not backbone" }, - { "atPairs", "select a,t" }, - { "gcPairs", "select g,c" }, - { "auPairs", "select a,u" }, - { "A", "select a" }, - { "C", "select c" }, - { "G", "select g" }, - { "T", "select t" }, - { "U", "select u" }, + { + "selectMenu", + "showSelectionsCheckbox - selectAll selectNone elementsComputedMenu - " + + "PDBproteinMenu PDBnucleicMenu PDBheteroMenu PDBcarbohydrate PDBnoneOfTheAbove - " + + "invertSelection restrictToSelection" }, + { "selectAll", "all" }, + { "selectNone", "none" }, - { "heteroMenu", "heteroComputedMenu - allHetero Solvent Water - " + - "Ligand exceptWater nonWaterSolvent" }, - { "allHetero", "select hetero" }, - { "Solvent", "select solvent" }, - { "Water", "select water" }, -// same as ligand { "exceptSolvent", "select hetero and not solvent" }, - { "nonWaterSolvent", "select solvent and not water" }, - { "exceptWater", "select hetero and not water" }, - { "Ligand", "select ligand" }, + { + "PDBproteinMenu", + "allProtein proteinBackbone proteinSideChains - " + + "polar nonpolar - " + + "positiveCharge negativeCharge noCharge - " + + "aaresiduesComputedMenu" }, + { "allProtein", "protein" }, + { "proteinBackbone", "protein and backbone" }, + { "proteinSideChains", "protein and not backbone" }, + { "polar", "protein and polar" }, + { "nonpolar", "protein and not polar" }, + { "positiveCharge", "protein and basic" }, + { "negativeCharge", "protein and acidic" }, + { "noCharge", "protein and not (acidic,basic)" }, - { "Carbohydrate", "select carbohydrate" }, -// not implemented { "Lipid", "select lipid" }, - { "NoneOfTheAbove", "select not(hetero,protein,nucleic,carbohydrate)" }, + { + "PDBnucleicMenu", + "allNucleic nucleicBackbone nucleicBases - " + "DNA RNA - " + + "A C G T U - " + "atPairs auPairs gcPairs" }, + { "allNucleic", "nucleic" }, + { "DNA", "dna" }, + { "RNA", "rna" }, + { "nucleicBackbone", "nucleic and backbone" }, + { "nucleicBases", "nucleic and not backbone" }, + { "atPairs", "a,t" }, + { "gcPairs", "g,c" }, + { "auPairs", "a,u" }, + { "A", "a" }, + { "C", "c" }, + { "G", "g" }, + { "T", "t" }, + { "U", "u" }, + { + "PDBheteroMenu", + "heteroComputedMenu - allHetero Solvent Water - " + + "Ligand exceptWater nonWaterSolvent" }, + { "allHetero", "hetero" }, + { "Solvent", "solvent" }, + { "Water", "water" }, + // same as ligand { "exceptSolvent", "hetero and not solvent" }, + { "nonWaterSolvent", "solvent and not water" }, + { "exceptWater", "hetero and not water" }, + { "Ligand", "ligand" }, - { "byModelMenu", "allModels" }, - { "allModels", "select all" }, + { "PDBcarbohydrate", "carbohydrate" }, + // not implemented { "Lipid", "lipid" }, + { "PDBnoneOfTheAbove", "not(hetero,protein,nucleic,carbohydrate)" }, - { "byFrameMenu", "allFrames" }, - { "allFrames", "select all" }, + { "invertSelection", "not selected" }, - { "invertSelection", "select not selected" }, + { "restrictToSelection", "selected; restrict selected" }, - { "restrictToSelection", "restrict selected" }, + { + "renderMenu", + "perspectiveDepthCheckbox stereoMenu - renderSchemeMenu - atomMenu labelMenu bondMenu hbondMenu ssbondMenu - " + + "PDBstructureMenu setAxesMenu setBoundBoxMenu setUnitCellMenu" }, + { + "renderSchemeMenu", + "renderCpkSpacefill renderBallAndStick " + + "renderSticks renderWireframe" }, + { "renderCpkSpacefill", "backbone off;wireframe off;spacefill 100%" }, + { "renderBallAndStick", "backbone off;spacefill 20%;wireframe 0.15" }, + { "renderSticks", "backbone off;spacefill off;wireframe 0.3" }, + { "renderWireframe", "backbone off;spacefill off;wireframe on" }, + { "renderBackbone", "spacefill off;wireframe off;backbone on" }, - { "setSelectModeMenu", "replace add narrow" }, - { "replace", "#replace selected" }, - { "add", "#or selected" }, - { "narrow", "#and selected" }, + { + "atomMenu", + "showHydrogensCheckbox - atomNone - " + + "atom15 atom20 atom25 atom50 atom75 atom100" }, + { "atomNone", "cpk off" }, + { "atom15", "cpk 15%" }, + { "atom20", "cpk 20%" }, + { "atom25", "cpk 25%" }, + { "atom50", "cpk 50%" }, + { "atom75", "cpk 75%" }, + { "atom100", "cpk on" }, - { "renderMenu", "renderSchemeMenu - atomMenu bondMenu hbondMenu ssbondMenu - " + - "structureMenu - vectorMenu - stereoMenu" }, - { "renderSchemeMenu", "renderCpkSpacefill renderBallAndStick " + - "renderSticks renderWireframe" }, - { "renderCpkSpacefill", "backbone off;wireframe off;spacefill 100%" }, - { "renderBallAndStick", "backbone off;spacefill 20%;wireframe 0.15" }, - { "renderSticks", "backbone off;spacefill off;wireframe 0.3" }, - { "renderWireframe", "backbone off;spacefill off;wireframe on" }, - { "renderBackbone", "spacefill off;wireframe off;backbone on" }, + { + "bondMenu", + "bondNone bondWireframe - " + + "bond100 bond150 bond200 bond250 bond300" }, + { "bondNone", "wireframe off" }, + { "bondWireframe", "wireframe on" }, + { "bond100", "wireframe .1" }, + { "bond150", "wireframe .15" }, + { "bond200", "wireframe .2" }, + { "bond250", "wireframe .25" }, + { "bond300", "wireframe .3" }, - { "atomMenu", "atomNone - " + - "atom15 atom20 atom25 atom50 atom75 atom100" }, - { "atomNone", "cpk off" }, - { "atom15", "cpk 15%" }, - { "atom20", "cpk 20%" }, - { "atom25", "cpk 25%" }, - { "atom50", "cpk 50%" }, - { "atom75", "cpk 75%" }, - { "atom100", "cpk on" }, + { + "hbondMenu", + "PDBhbondCalc hbondNone hbondWireframe - " + + "PDBhbondSidechain PDBhbondBackbone - " + + "hbond100 hbond150 hbond200 hbond250 hbond300" }, + { "PDBhbondCalc", "hbonds calculate" }, + { "hbondNone", "hbonds off" }, + { "hbondWireframe", "hbonds on" }, + { "PDBhbondSidechain", "set hbonds sidechain" }, + { "PDBhbondBackbone", "set hbonds backbone" }, + { "hbond100", "hbonds .1" }, + { "hbond150", "hbonds .15" }, + { "hbond200", "hbonds .2" }, + { "hbond250", "hbonds .25" }, + { "hbond300", "hbonds .3" }, - { "bondMenu", "bondNone bondWireframe - " + - "bond100 bond150 bond200 bond250 bond300" }, - { "bondNone", "wireframe off" }, - { "bondWireframe", "wireframe on" }, - { "bond100", "wireframe .1" }, - { "bond150", "wireframe .15" }, - { "bond200", "wireframe .2" }, - { "bond250", "wireframe .25" }, - { "bond300", "wireframe .3" }, + { + "ssbondMenu", + "ssbondNone ssbondWireframe - " + + "PDBssbondSidechain PDBssbondBackbone - " + + "ssbond100 ssbond150 ssbond200 ssbond250 ssbond300" }, + { "ssbondNone", "ssbonds off" }, + { "ssbondWireframe", "ssbonds on" }, + { "PDBssbondSidechain", "set ssbonds sidechain" }, + { "PDBssbondBackbone", "set ssbonds backbone" }, + { "ssbond100", "ssbonds .1" }, + { "ssbond150", "ssbonds .15" }, + { "ssbond200", "ssbonds .2" }, + { "ssbond250", "ssbonds .25" }, + { "ssbond300", "ssbonds .3" }, - { "hbondMenu", "hbondCalc hbondNone hbondWireframe - " + - "hbondSidechain hbondBackbone - " + - "hbond100 hbond150 hbond200 hbond250 hbond300" }, - { "hbondCalc", "hbonds calculate" }, - { "hbondNone", "hbonds off" }, - { "hbondWireframe", "hbonds on" }, - { "hbondSidechain", "set hbonds sidechain" }, - { "hbondBackbone", "set hbonds backbone" }, - { "hbond100", "hbonds .1" }, - { "hbond150", "hbonds .15" }, - { "hbond200", "hbonds .2" }, - { "hbond250", "hbonds .25" }, - { "hbond300", "hbonds .3" }, + { + "PDBstructureMenu", + "structureNone - " + + "backbone cartoon cartoonRockets ribbons rockets strands trace" }, + { "structureNone", + "backbone off;cartoons off;ribbons off;rockets off;strands off;trace off;" }, + { "backbone", "backbone 0.3" }, + { "cartoon", "set cartoonRockets false;cartoons on" }, + { "cartoonRockets", "set cartoonRockets;cartoons on" }, + { "ribbons", "ribbons on" }, + { "rockets", "rockets on" }, + { "strands", "strands on" }, + { "trace", "trace 0.3" }, - { "ssbondMenu", "ssbondNone ssbondWireframe - " + - "ssbondSidechain ssbondBackbone - " + - "ssbond100 ssbond150 ssbond200 ssbond250 ssbond300" }, - { "ssbondNone", "ssbonds off" }, - { "ssbondWireframe", "ssbonds on" }, - { "ssbondSidechain", "set ssbonds sidechain" }, - { "ssbondBackbone", "set ssbonds backbone" }, - { "ssbond100", "ssbonds .1" }, - { "ssbond150", "ssbonds .15" }, - { "ssbond200", "ssbonds .2" }, - { "ssbond250", "ssbonds .25" }, - { "ssbond300", "ssbonds .3" }, + { "VIBRATIONMenu", "vibrationOff vibrationOn vectorMenu" }, + { "vibrationOff", "vibration off" }, + { "vibrationOn", "vibration on" }, + { + "vectorMenu", + "vectorOff vectorOn vector3 vector005 vector01 - " + + "vectorScale02 vectorScale05 vectorScale1 vectorScale2 vectorScale5" }, + { "vectorOff", "vectors off" }, + { "vectorOn", "vectors on" }, + { "vector3", "vectors 3" }, + { "vector005", "vectors 0.05" }, + { "vector01", "vectors 0.1" }, + { "vectorScale02", "vector scale 0.2" }, + { "vectorScale05", "vector scale 0.5" }, + { "vectorScale1", "vector scale 1" }, + { "vectorScale2", "vector scale 2" }, + { "vectorScale5", "vector scale 5" }, - { "structureMenu", "structureNone - " + - "Backbone Trace Cartoon Ribbons" }, - { "structureNone", "cartoon off;ribbons off;trace off;backbone off" }, - { "Backbone", "backbone 0.3" }, - { "Trace", "trace 0.3" }, - { "Cartoon", "cartoon on" }, - { "Ribbons", "ribbons on" }, + { + "stereoMenu", + "stereoNone stereoRedCyan stereoRedBlue stereoRedGreen stereoCrossEyed stereoWallEyed" }, + { "stereoNone", "stereo off" }, + { "stereoRedCyan", "stereo redcyan 3" }, + { "stereoRedBlue", "stereo redblue 3" }, + { "stereoRedGreen", "stereo redgreen 3" }, + { "stereoCrossEyed", "stereo 5" }, + { "stereoWallEyed", "stereo -5" }, - { "vectorMenu", "vectorOff vectorOn vector3 vector005 vector01 - " + - "vectorScale02 vectorScale05 vectorScale1 vectorScale2 vectorScale5" }, - { "vectorOff", "vectors off" }, - { "vectorOn", "vectors on" }, - { "vector3", "vectors 3" }, - { "vector005", "vectors 0.05" }, - { "vector01", "vectors 0.1" }, - { "vectorScale02", "vector scale 0.2" }, - { "vectorScale05", "vector scale 0.5" }, - { "vectorScale1", "vector scale 1" }, - { "vectorScale2", "vector scale 2" }, - { "vectorScale5", "vector scale 5" }, + { + "labelMenu", + "labelNone - " + "labelSymbol labelName labelNumber - " + + "labelPositionMenu" }, - { "stereoMenu", "stereoNone stereoRedCyan stereoRedBlue stereoRedGreen stereoCrossEyed stereoWallEyed" }, - { "stereoNone", "stereo off" }, - { "stereoRedCyan", "stereo redcyan 3" }, - { "stereoRedBlue", "stereo redblue 3" }, - { "stereoRedGreen", "stereo redgreen 3" }, - { "stereoCrossEyed", "stereo 5" }, - { "stereoWallEyed", "stereo -5" }, + { "labelNone", "label off" }, + { "labelSymbol", "label %e" }, + { "labelName", "label %a" }, + { "labelNumber", "label %i" }, - { "labelMenu", "labelNone - " + - "labelSymbol labelName labelNumber - " + - "labelPositionMenu" }, + { "labelPositionMenu", + "labelCentered labelUpperRight labelLowerRight labelUpperLeft labelLowerLeft" }, + { "labelCentered", "set labeloffset 0 0" }, + { "labelUpperRight", "set labeloffset 4 4" }, + { "labelLowerRight", "set labeloffset 4 -4" }, + { "labelUpperLeft", "set labeloffset -4 4" }, + { "labelLowerLeft", "set labeloffset -4 -4" }, - { "labelNone", "label off" }, - { "labelSymbol", "label %e" }, - { "labelName", "label %a" }, - { "labelNumber", "label %i" }, + { + "colorMenu", + "colorrasmolCheckbox - colorAtomMenu colorBondMenu colorHbondMenu colorSSbondMenu colorPDBstructuresMenu colorIsoSurfaceMenu" + + " - colorLabelMenu colorVectorMenu - colorAxesMenu colorBoundBoxMenu colorUnitCellMenu colorBackgroundMenu" }, + { + "colorPDBstructuresMenu", + "colorBackboneMenu colorCartoonMenu colorRibbonsMenu colorRocketsMenu colorStrandsMenu colorTraceMenu" }, + { "colorAtomMenu", "@ SCHEME COLOR TRANSLUCENCY" }, + { "colorBondMenu", "@ INHERIT COLOR TRANSLUCENCY" }, + { "colorHbondMenu", null }, + { "colorSSbondMenu", null }, + { "colorLabelMenu", null }, + { "colorVectorMenu", null }, + { "colorBackboneMenu", "@ INHERIT SCHEME COLOR TRANSLUCENCY" }, + { "colorCartoonMenu", null }, + { "colorRibbonsMenu", null }, + { "colorRocketsMenu", null }, + { "colorStrandsMenu", null }, + { "colorTraceMenu", null }, + { "colorBackgroundMenu", "@ COLOR" }, + { "colorIsoSurfaceMenu", "@ COLOR TRANSLUCENCY" }, + { "colorAxesMenu", "@ AXESCOLOR" }, + { "colorBoundBoxMenu", null }, + { "colorUnitCellMenu", null }, - { "labelPositionMenu", "labelCentered labelUpperRight labelLowerRight labelUpperLeft labelLowerLeft" }, - { "labelCentered", "set labeloffset 0 0" }, - { "labelUpperRight", "set labeloffset 4 4" }, - { "labelLowerRight", "set labeloffset 4 -4" }, - { "labelUpperLeft", "set labeloffset -4 4" }, - { "labelLowerLeft", "set labeloffset -4 -4" }, + { "SchemeMenu", "cpk amino structure chain formalcharge partialcharge" }, + { + "zoomMenu", + "zoom50 zoom100 zoom150 zoom200 zoom400 zoom800 - " + + "zoomIn zoomOut" }, + { "zoom50", "zoom 50" }, + { "zoom100", "zoom 100" }, + { "zoom150", "zoom 150" }, + { "zoom200", "zoom 200" }, + { "zoom400", "zoom 400" }, + { "zoom800", "zoom 800" }, + { "zoomIn", "move 0 0 0 40 0 0 0 0 1" }, + { "zoomOut", "move 0 0 0 -40 0 0 0 0 1" }, - { "colorMenu", "colorAtomMenu colorBondMenu colorHbondMenu colorSSbondMenu - " + - "colorBackboneMenu colorTraceMenu colorCartoonMenu colorRibbonsMenu - " + - "colorLabelMenu colorSurfaceMenu colorBackgroundMenu - " + - "colorVectorMenu" }, - { "colorAtomMenu", "colorAtomSchemeMenu - " + - "colorAtomBlack colorAtomWhite - " + - "colorAtomRedMenu colorAtomYellowMenu colorAtomGreenMenu colorAtomBlueMenu" }, + { + "spinMenu", + "spinOn spinOff - " + "setSpinXMenu setSpinYMenu setSpinZMenu - " + + "setSpinFpsMenu" }, + { "spinOn", "spin on" }, + { "spinOff", "spin off" }, - { "colorAtomSchemeMenu", "colorAtomElement colorAtomAminoAcids colorAtomSecondaryStructure " + - "colorAtomChain colorAtomFormalCharge colorAtomPartialCharge" }, - { "colorAtomElement", "color atoms cpk" }, - { "colorAtomAminoAcids", "color atoms amino" }, - { "colorAtomSecondaryStructure", "color atoms structure" }, - { "colorAtomChain", "color atoms chain" }, - { "colorAtomFormalCharge", "color atoms formalCharge" }, - { "colorAtomPartialCharge", "color atoms partialCharge" }, + { "setSpinXMenu", "s0 s5 s10 s20 s30 s40 s50" }, + { "setSpinYMenu", null }, + { "setSpinZMenu", null }, + { "setSpinFpsMenu", null }, + { "s0", "0" }, + { "s5", "5" }, + { "s10", "10" }, + { "s20", "20" }, + { "s30", "30" }, + { "s40", "40" }, + { "s50", "50" }, - { "colorAtomBlack", "color black" }, - { "colorAtomWhite", "color white" }, + { + "FRAMESanimateMenu", + "setAnimModeMenu - " + "play stop nextframe prevframe rewind - " + + "setAnimFpsMenu" }, + { "setAnimModeMenu", "OnceThrough Palindrome Loop" }, + { "OnceThrough", "anim mode once" }, + { "Palindrome", "anim mode palindrome" }, + { "Loop", "anim mode loop" }, + { "play", "anim on" }, + { "stop", "anim off" }, + { "nextframe", "frame next" }, + { "prevframe", "frame prev" }, + { "rewind", "frame 1" }, + { "setAnimFpsMenu", "animfps5 animfps10 animfps20 animfps30 animfps50" }, + { "animfps5", "anim fps 5" }, + { "animfps10", "anim fps 10" }, + { "animfps20", "anim fps 20" }, + { "animfps30", "anim fps 30" }, + { "animfps50", "anim fps 50" }, - { "colorAtomRedMenu", "colorAtomRed colorAtomCrimson colorAtomDarkRed colorAtomFireBrick " + - "colorAtomIndianRed colorAtomDarkMagenta colorAtomDarkSalmon " + - "colorAtomLightSalmon colorAtomDeepPink colorAtomLightPink" }, - { "colorAtomRed", "color red" }, - { "colorAtomCrimson", "color crimson" }, - { "colorAtomDarkRed", "color darkred" }, - { "colorAtomFireBrick", "color firebrick" }, - { "colorAtomIndianRed", "color indianred" }, - { "colorAtomDarkMagenta", "color darkmagenta" }, - { "colorAtomDarkSalmon", "color darksalmon" }, - { "colorAtomLightSalmon", "color lightsalmon" }, - { "colorAtomDeepPink", "color deeppink" }, - { "colorAtomLightPink", "color lightpink" }, + { + "measureMenu", + "showMeasurementsCheckbox - " + + "measureOff measureDistance measureAngle measureTorsion - " + + "measureDelete measureList - distanceNanometers distanceAngstroms distancePicometers" }, + { "measureOff", "set pickingstyle MEASURE OFF; set picking OFF" }, + { "measureDistance", + "set pickingstyle MEASURE; set picking MEASURE DISTANCE" }, + { "measureAngle", "set pickingstyle MEASURE; set picking MEASURE ANGLE" }, + { "measureTorsion", + "set pickingstyle MEASURE; set picking MEASURE TORSION" }, + { "measureDelete", "measure delete" }, + { "measureList", "console on;show measurements" }, + { "distanceNanometers", "select *; set measure nanometers" }, + { "distanceAngstroms", "select *; set measure angstroms" }, + { "distancePicometers", "select *; set measure picometers" }, - { "colorAtomYellowMenu", "colorAtomYellow colorAtomGold colorAtomGoldenrod colorAtomLemonChiffon " + - "colorAtomYellowGreen" }, - { "colorAtomYellow", "color yellow" }, - { "colorAtomGold", "color gold" }, - { "colorAtomGoldenrod", "color goldenrod" }, - { "colorAtomLemonChiffon", "color lemonchiffon" }, - { "colorAtomYellowGreen", "color yellowgreen" }, + { + "pickingMenu", + "pickOff pickCenter pickLabel pickAtom pickChain " + + "pickElement pickGroup pickMolecule pickSite pickSpin" }, + { "pickOff", "set picking off" }, + { "pickCenter", "set picking center" }, + // { "pickDraw" , "set picking draw" }, + { "pickLabel", "set picking label" }, + { "pickAtom", "set picking atom" }, + { "pickChain", "set picking chain" }, + { "pickElement", "set picking element" }, + { "pickGroup", "set picking group" }, + { "pickMolecule", "set picking molecule" }, + { "pickSite", "set picking site" }, + { "pickSpin", "set picking spin" }, - { "colorAtomGreenMenu", "colorAtomGreen colorAtomLime colorAtomSeaGreen colorAtomGreenBlue " + - "colorAtomSpringGreen" }, - { "colorAtomGreen", "color green" }, - { "colorAtomLime", "color lime" }, - { "colorAtomSeaGreen", "color seagreen" }, - { "colorAtomGreenBlue", "color greenblue" }, - { "colorAtomSpringGreen", "color springgreen" }, + { "showMenu", "showHistory showFile showFileHeader - " + + "showOrient showMeasure - " + + "showSpacegroup showSymmetry showUnitCell - showIsosurface showMo - extractMOL" }, + { "showConsole", "console" }, + { "showFile", "console on;show file" }, + { "showFileHeader", "console on;getProperty FileHeader" }, + { "showHistory", "console on;show history" }, + { "showIsosurface", "console on;show isosurface" }, + { "showMeasure", "console on;show measure" }, + { "showMo", "console on;show mo" }, + { "showModel", "console on;show model" }, + { "showOrient", "console on;show orientation" }, + { "showSpacegroup", "console on;show spacegroup" }, + { "showSymmetry", "console on;show symmetry" }, + { "showUnitCell", "console on;show unitcell" }, + { "extractMOL", "console on;getproperty extractModel \"visible\" " }, - { "colorAtomBlueMenu", "colorAtomBlue colorAtomAqua colorAtomAzure colorAtomCarolinaBlue " + - "colorAtomCadetBlue colorAtomCornflowerBlue colorAtomDarkSlateBlue " + - "colorAtomLightSteelBlue" }, - { "colorAtomBlue", "color blue" }, - { "colorAtomAqua", "color aqua" }, - { "colorAtomAzure", "color azure" }, - { "colorAtomCarolinaBlue", "color dodgerblue" }, - { "colorAtomCadetBlue", "color cadetblue" }, - { "colorAtomCornflowerBlue", "color cornflowerblue" }, - { "colorAtomDarkSlateBlue", "color darkslateblue" }, - { "colorAtomLightSteelBlue", "color lightsteelblue" }, + { + "surfaceMenu", + "surfDots surfVDW surfSolventAccessible14 surfSolvent14 surfMolecular surfMEP surfMoComputedMenu - surfOpaque surfTranslucent surfOff" }, + { "surfDots", "select *;dots on" }, + { "surfVDW", "isosurface delete resolution 0 solvent 0 translucent" }, + { "surfMolecular", "isosurface delete resolution 0 molecular translucent" }, + { "surfSolvent14", + "isosurface delete resolution 0 solvent 1.4 translucent" }, + { "surfSolventAccessible14", + "isosurface delete resolution 0 sasurface 1.4 translucent" }, + { "surfMEP", + "isosurface delete resolution 0 molecular map MEP translucent" }, + { "surfOpaque", "isosurface opaque" }, + { "surfTranslucent", "isosurface translucent" }, + { "surfOff", "isosurface delete;select *;dots off" }, - { "colorBondMenu", "colorBondInherit - " + - "colorBondBlack colorBondWhite colorBondCyan - " + - "colorBondRed colorBondOrange colorBondYellow colorBondGreen " + - "colorBondBlue colorBondIndigo colorBondViolet" }, - { "colorBondInherit", "color bonds none" }, - { "colorBondRed", "color bonds red" }, - { "colorBondOrange", "color bonds orange" }, - { "colorBondYellow", "color bonds yellow" }, - { "colorBondGreen", "color bonds green" }, - { "colorBondBlue", "color bonds blue" }, - { "colorBondIndigo", "color bonds indigo" }, - { "colorBondViolet","color bonds violet" }, - { "colorBondBlack", "color bonds black" }, - { "colorBondWhite", "color bonds white" }, - { "colorBondCyan", "color bonds cyan" }, + { "setAxesMenu", "off dotted - byPixelMenu byAngstromMenu" }, + { "setBoundBoxMenu", null }, + { "setUnitCellMenu", null }, - { "colorHbondMenu", "colorHbondInherit - " + - "colorHbondBlack colorHbondWhite colorHbondCyan - " + - "colorHbondRed colorHbondOrange colorHbondYellow colorHbondGreen " + - "colorHbondBlue colorHbondIndigo colorHbondViolet" }, - { "colorHbondInherit", "color hbonds none" }, - { "colorHbondRed", "color hbonds red" }, - { "colorHbondOrange", "color hbonds orange" }, - { "colorHbondYellow", "color hbonds yellow" }, - { "colorHbondGreen", "color hbonds green" }, - { "colorHbondBlue", "color hbonds blue" }, - { "colorHbondIndigo", "color hbonds indigo" }, - { "colorHbondViolet", "color hbonds violet" }, - { "colorHbondBlack", "color hbonds black" }, - { "colorHbondWhite", "color hbonds white" }, - { "colorHbondCyan", "color hbonds cyan" }, + { "byPixelMenu", "1p 3p 5p 10p" }, + { "1p", "on" }, + { "3p", "3" }, + { "5p", "5" }, + { "10p", "10" }, - { "colorSSbondMenu", "colorSSbondInherit - " + - "colorSSbondBlack colorSSbondWhite colorSSbondCyan - " + - "colorSSbondRed colorSSbondOrange colorSSbondYellow colorSSbondGreen " + - "colorSSbondBlue colorSSbondIndigo colorSSbondViolet" }, - { "colorSSbondInherit", "color ssbonds none" }, - { "colorSSbondRed", "color ssbonds red" }, - { "colorSSbondOrange", "color ssbonds orange" }, - { "colorSSbondYellow", "color ssbonds yellow" }, - { "colorSSbondGreen", "color ssbonds green" }, - { "colorSSbondBlue", "color ssbonds blue" }, - { "colorSSbondIndigo", "color ssbonds indigo" }, - { "colorSSbondViolet", "color ssbonds violet" }, - { "colorSSbondBlack", "color ssbonds black" }, - { "colorSSbondWhite", "color ssbonds white" }, - { "colorSSbondCyan", "color ssbonds cyan" }, + { "byAngstromMenu", "10a 20a 25a 50a 100a" }, + { "10a", "0.1" }, + { "20a", "0.20" }, + { "25a", "0.25" }, + { "50a", "0.50" }, + { "100a", "1.0" }, - { "colorBackboneMenu", "colorBackboneInherit colorBackboneSchemeMenu - " + - "colorBackboneBlack colorBackboneWhite colorBackboneCyan - " + - "colorBackboneRed colorBackboneOrange colorBackboneYellow " + - "colorBackboneGreen colorBackboneBlue colorBackboneIndigo colorBackboneViolet" }, - { "colorBackboneInherit", "color backbone none" }, +// { "optionsMenu", "rasmolChimeCompatibility" }, + { + "rasmolChimeCompatibility", + "set color rasmol; set zeroBasedXyzRasmol on; " + + "set axesOrientationRasmol on; load \"\"; select *; cpk off; wireframe on; " }, - { "colorBackboneSchemeMenu", "colorBackboneElement colorBackboneAminoAcids " + - "colorBackboneSecondaryStructure colorBackboneChain colorBackboneCharge" }, - { "colorBackboneElement", "color backbone cpk" }, - { "colorBackboneAminoAcids", "color backbone amino" }, - { "colorBackboneSecondaryStructure", "color backbone structure" }, - { "colorBackboneChain", "color backbone chain" }, - { "colorBackboneCharge", "color backbone charge" }, + { "aboutMenu", "jmolUrl mouseManualUrl translatingUrl" }, + { "jmolUrl", "http://www.jmol.org" }, + { "mouseManualUrl", "http://wiki.jmol.org/index.php/Mouse_Manual" }, + { "translatingUrl", "http://wiki.jmol.org/index.php/Internationalisation" }, }; - { "colorBackboneBlack", "color backbone black" }, - { "colorBackboneWhite", "color backbone white" }, - { "colorBackboneRed", "color backbone red" }, - { "colorBackboneOrange", "color backbone orange" }, - { "colorBackboneYellow", "color backbone yellow" }, - { "colorBackboneGreen", "color backbone green" }, - { "colorBackboneBlue", "color backbone blue" }, - { "colorBackboneIndigo", "color backbone indigo" }, - { "colorBackboneViolet", "color backbone violet" }, - { "colorBackboneCyan", "color backbone cyan" }, - - { "colorTraceMenu", "colorTraceInherit colorTraceSchemeMenu - " + - "colorTraceBlack colorTraceWhite colorTraceCyan - " + - "colorTraceRed colorTraceOrange colorTraceYellow colorTraceGreen " + - "colorTraceBlue colorTraceIndigo colorTraceViolet" }, - { "colorTraceInherit", "color trace none" }, - - { "colorTraceSchemeMenu", "colorTraceElement colorTraceAminoAcids colorTraceSecondaryStructure " + - "colorTraceChain colorTraceCharge" }, - { "colorTraceElement", "color trace cpk" }, - { "colorTraceAminoAcids", "color trace amino" }, - { "colorTraceSecondaryStructure", "color trace structure" }, - { "colorTraceChain", "color trace chain" }, - { "colorTraceCharge", "color trace charge" }, - - { "colorTraceBlack", "color trace black" }, - { "colorTraceWhite", "color trace white" }, - { "colorTraceRed", "color trace red" }, - { "colorTraceOrange", "color trace orange" }, - { "colorTraceYellow", "color trace yellow" }, - { "colorTraceGreen", "color trace green" }, - { "colorTraceBlue", "color trace blue" }, - { "colorTraceIndigo", "color trace indigo" }, - { "colorTraceViolet", "color trace violet" }, - { "colorTraceCyan", "color trace cyan" }, - - { "colorCartoonMenu", "colorCartoonInherit colorCartoonSchemeMenu - " + - "colorCartoonBlack colorCartoonWhite colorCartoonCyan - " + - "colorCartoonRed colorCartoonOrange colorCartoonYellow colorCartoonGreen " + - "colorCartoonBlue colorCartoonIndigo colorCartoonViolet" }, - { "colorCartoonInherit", "color cartoon none" }, - - { "colorCartoonSchemeMenu", "colorCartoonElement colorCartoonAminoAcids " + - "colorCartoonSecondaryStructure colorCartoonChain colorCartoonCharge" }, - { "colorCartoonElement", "color cartoon cpk" }, - { "colorCartoonAminoAcids", "color cartoon amino" }, - { "colorCartoonSecondaryStructure", "color cartoon structure" }, - { "colorCartoonChain", "color cartoon chain" }, - { "colorCartoonCharge", "color cartoon charge" }, - - { "colorCartoonBlack", "color cartoon black" }, - { "colorCartoonWhite", "color cartoon white" }, - { "colorCartoonRed", "color cartoon red" }, - { "colorCartoonOrange", "color cartoon orange" }, - { "colorCartoonYellow", "color cartoon yellow" }, - { "colorCartoonGreen", "color cartoon green" }, - { "colorCartoonBlue", "color cartoon blue" }, - { "colorCartoonIndigo", "color cartoon indigo" }, - { "colorCartoonViolet", "color cartoon violet" }, - { "colorCartoonCyan", "color cartoon cyan" }, - - { "colorRibbonsMenu", "colorRibbonsInherit colorRibbonsSchemeMenu - " + - "colorRibbonsBlack colorRibbonsWhite colorRibbonsCyan - " + - "colorRibbonsRed colorRibbonsOrange colorRibbonsYellow colorRibbonsGreen " + - "colorRibbonsBlue colorRibbonsIndigo colorRibbonsViolet" }, - { "colorRibbonsInherit", "color ribbons none" }, - - { "colorRibbonsSchemeMenu", "colorRibbonsElement colorRibbonsAminoAcids " + - "colorRibbonsSecondaryStructure colorRibbonsChain colorRibbonsCharge" }, - { "colorRibbonsElement", "color ribbons cpk" }, - { "colorRibbonsAminoAcids", "color ribbons amino" }, - { "colorRibbonsSecondaryStructure", "color ribbons structure" }, - { "colorRibbonsChain", "color ribbons chain" }, - { "colorRibbonsCharge", "color ribbons charge" }, - - { "colorRibbonsBlack", "color ribbons black" }, - { "colorRibbonsWhite", "color ribbons white" }, - { "colorRibbonsRed", "color ribbons red" }, - { "colorRibbonsOrange", "color ribbons orange" }, - { "colorRibbonsYellow", "color ribbons yellow" }, - { "colorRibbonsGreen", "color ribbons green" }, - { "colorRibbonsBlue", "color ribbons blue" }, - { "colorRibbonsIndigo", "color ribbons indigo" }, - { "colorRibbonsViolet", "color ribbons violet" }, - { "colorRibbonsCyan", "color ribbons cyan" }, - - { "colorLabelMenu", "colorLabelInherit - " + - "colorLabelBlack colorLabelWhite colorLabelCyan - " + - "colorLabelRed colorLabelOrange colorLabelYellow colorLabelGreen " + - "colorLabelBlue colorLabelIndigo colorLabelViolet" }, - { "colorLabelInherit", "color labels none" }, - { "colorLabelBlack", "color labels black" }, - { "colorLabelWhite", "color labels white" }, - { "colorLabelRed", "color labels red" }, - { "colorLabelOrange", "color labels orange" }, - { "colorLabelYellow", "color labels yellow" }, - { "colorLabelGreen", "color labels green" }, - { "colorLabelBlue", "color labels blue" }, - { "colorLabelIndigo", "color labels indigo" }, - { "colorLabelViolet", "color labels violet" }, - { "colorLabelCyan", "color labels cyan" }, - - { "colorBackgroundMenu", "colorBackgroundBlack colorBackgroundWhite - " + - "colorBackgroundRed colorBackgroundOrange colorBackgroundYellow " + - "colorBackgroundGreen colorBackgroundBlue colorBackgroundIndigo " + - "colorBackgroundViolet" }, - { "colorBackgroundBlack", "background black" }, - { "colorBackgroundWhite", "background white" }, - { "colorBackgroundRed", "background red" }, - { "colorBackgroundOrange", "background orange" }, - { "colorBackgroundYellow", "background yellow" }, - { "colorBackgroundGreen", "background green" }, - { "colorBackgroundBlue", "background blue" }, - { "colorBackgroundIndigo", "background indigo" }, - { "colorBackgroundViolet", "background violet" }, - { "colorBackgroundCyan", "background cyan" }, - - { "colorSurfaceMenu", "colorSurfaceBlack colorSurfaceWhite - " + - "colorSurfaceRed colorSurfaceOrange colorSurfaceYellow... [truncated message content] |
From: <ha...@us...> - 2006-10-15 22:34:17
|
Revision: 5957 http://svn.sourceforge.net/jmol/?rev=5957&view=rev Author: hansonr Date: 2006-10-15 15:34:01 -0700 (Sun, 15 Oct 2006) Log Message: ----------- a difficult fix, but several issues resolved -- popup submenuing system provides sub-submenus for lists longer than 25 items; better CIF and PDB hetero name support Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/smarter/CifReader.java trunk/Jmol/src/org/jmol/adapter/smarter/PdbReader.java trunk/Jmol/src/org/jmol/applet/Jmol.java trunk/Jmol/src/org/jmol/popup/JmolPopup.java trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/viewer/Frame.java trunk/Jmol/src/org/jmol/viewer/JmolConstants.java trunk/Jmol/src/org/jmol/viewer/Mmset.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/adapter/smarter/CifReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/smarter/CifReader.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/adapter/smarter/CifReader.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -25,6 +25,7 @@ import java.io.BufferedReader; import java.util.Hashtable; +import org.jmol.viewer.JmolConstants; /** * A true line-free CIF file reader for CIF and mmCIF files. @@ -333,8 +334,11 @@ processNonpolyLoopBlock(); return; } - if (str.startsWith("_struct_conf") - && !str.startsWith("_struct_conf_type")) { + if (str.startsWith("_chem_comp")) { + processChemCompLoopBlock(); + return; + } + if (str.startsWith("_struct_conf") && !str.startsWith("_struct_conf_type")) { processStructConfLoopBlock(); return; } @@ -355,7 +359,7 @@ processSymmetryOperationsLoopBlock(); } return; - } + } skipLoop(); } @@ -385,7 +389,6 @@ parseLoopParameters(atomTypeFields); for (int i = propertyCount; --i >= 0;) if (!propertyReferenced[i]) { - logger.log("?que? missing _atom_type property:" + i); skipLoop(); return; } @@ -609,12 +612,15 @@ atomSetCollection.addAtomWithMappedName(atom); if (atom.isHetero && htHetero != null) { atomSetCollection.setAtomSetAuxiliaryInfo("hetNames", htHetero); + atomSetCollection.setAtomSetCollectionAuxiliaryInfo("hetNames", htHetero); htHetero = null; } } } - if (isPDB) + if (isPDB) { + atomSetCollection.setAtomSetCollectionAuxiliaryInfo("isPDB", new Boolean(isPDB)); atomSetCollection.setAtomSetAuxiliaryInfo("isPDB", new Boolean(isPDB)); + } return true; } @@ -718,8 +724,53 @@ hetatmData = null; } + + final static byte CHEM_COMP_ID = 0; + final static byte CHEM_COMP_NAME = 1; + + final static String[] chemCompFields = { + "_chem_comp.id", + "_chem_comp.name", + }; + + /** * + * a general name definition field. Not all hetero + * + * @throws Exception + */ + void processChemCompLoopBlock() throws Exception { + parseLoopParameters(chemCompFields); + while (tokenizer.getData()) { + String groupName = null; + String hetName = null; + for (int i = 0; i < fieldCount; ++i) { + String field = loopData[i]; + if (field.length() == 0) + continue; + char firstChar = field.charAt(0); + if (firstChar == '\0') + continue; + switch (fieldTypes[i]) { + case NONE: + break; + case CHEM_COMP_ID: + groupName = field; + break; + case CHEM_COMP_NAME: + hetName = field; + break; + } + } + if (groupName == null || hetName == null) + return; + addHetero(groupName, hetName); + } + } + + /** + * * a HETERO name definition field. Maybe not all hetero? nonpoly? * * @throws Exception @@ -755,6 +806,8 @@ } void addHetero(String groupName, String hetName) { + if (!JmolConstants.isHetero(groupName)) + return; if (htHetero == null) htHetero = new Hashtable(); htHetero.put(groupName, hetName); Modified: trunk/Jmol/src/org/jmol/adapter/smarter/PdbReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/smarter/PdbReader.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/adapter/smarter/PdbReader.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -478,7 +478,7 @@ if (htHetero == null) htHetero = new Hashtable(); String groupName = parseToken(line, 7, 10); - String hetName = ""; + String hetName = line.substring(30, 70).trim(); String htName = (String) htHetero.get(groupName); if (htName != null) return; Modified: trunk/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/applet/Jmol.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -735,8 +735,8 @@ else jsoWindow.call(loadStructCallback, new Object[] { htmlName, fullPathName }); - if (jmolpopup != null) - jmolpopup.updateComputedMenus(); +// if (jmolpopup != null) + // jmolpopup.updateComputedMenus(); } public void notifyScriptStart(String statusMessage, String additionalInfo) { Modified: trunk/Jmol/src/org/jmol/popup/JmolPopup.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -78,6 +78,8 @@ int modelIndex, modelCount; + final static int MAX_ITEMS = 25; + JmolPopup(JmolViewer viewer) { this.viewer = viewer; jmolComponent = viewer.getAwtComponent(); @@ -213,11 +215,25 @@ if (nOrb == 0) return; enableMenu(menu, true); + Object subMenu = menu; + int nmod = (nOrb % MAX_ITEMS); + if (nmod == 0) + nmod = MAX_ITEMS; + int pt = (nOrb > MAX_ITEMS ? 0 : Integer.MIN_VALUE); for (int i = nOrb; --i >= 0;) { - String entryName = "#" + (i + 1) +" " - + ((Hashtable)(mos.get(i))).get("energy"); + if (pt >= 0 && (pt++ % nmod) == 0) { + if (pt == nmod + 1) + nmod = MAX_ITEMS; + String id = "mo" + pt + "Menu"; + subMenu = newMenu(Math.max(i + 2 - nmod, 1) + "..." + (i + 1), getId(menu) + "." + id); + addMenuSubMenu(menu, subMenu); + htMenus.put(id, subMenu); + pt = 1; + } + String entryName = "#" + (i + 1) + " " + + ((Hashtable) (mos.get(i))).get("energy"); String script = "mo " + (i + 1); - addMenuItem(menu, entryName, script, null); + addMenuItem(subMenu, entryName, script, null); } } @@ -233,6 +249,10 @@ removeAll(menu1); enableMenu(menu1, false); + Object menu2 = htMenus.get("PDBcarboResiduesComputedMenu"); + removeAll(menu2); + enableMenu(menu2, false); + if (!isPDB) return; @@ -254,8 +274,12 @@ nItems = augmentGroup3List(menu1, "n>", false); enableMenu(menu1, nItems > 0); enableMenu(htMenus.get("PDBnucleicMenu"), (nItems > 0)); - } + nItems = augmentGroup3List(menu2, "c>", false); + enableMenu(menu2, nItems > 0); + enableMenu(htMenus.get("PDBcarboMenu"), (nItems > 0)); +} + String group3List; int[] group3Counts; @@ -296,12 +320,17 @@ void updateFRAMESbyModelComputedMenu() { //allowing this in case we move it later FRAMESbyModelComputedMenu = htMenus.get("FRAMESbyModelComputedMenu"); - enableMenu(FRAMESbyModelComputedMenu, (modelCount > 1)); - setLabel(FRAMESbyModelComputedMenu, (modelIndex < 0 ? GT._("All {0} models", modelCount, true) : getModelLabel())); - removeAll(FRAMESbyModelComputedMenu); + Object menu = FRAMESbyModelComputedMenu; + enableMenu(menu, (modelCount > 1)); + setLabel(menu, (modelIndex < 0 ? GT._("All {0} models", modelCount, true) : getModelLabel())); + removeAll(menu); if (modelCount < 2) return; - addCheckboxMenuItem(FRAMESbyModelComputedMenu, GT._("all", true), "frame 0 #", null, (modelIndex < 0)); + addCheckboxMenuItem(menu, GT._("all", true), "frame 0 #", null, (modelIndex < 0)); + + Object subMenu = menu; + int nmod = MAX_ITEMS; + int pt = (modelCount > MAX_ITEMS ? 0 : Integer.MIN_VALUE); for (int i = 0; i < modelCount; i++) { String script = "" + viewer.getModelNumber(i); String entryName = viewer.getModelName(i); @@ -309,7 +338,14 @@ entryName = script + ": " + entryName; if (entryName.length() > 30) entryName = entryName.substring(0, 20) + "..."; - addCheckboxMenuItem(FRAMESbyModelComputedMenu, entryName, "model " + script + " #", null, (modelIndex == i)); + if (pt >= 0 && (pt++ % nmod) == 0) { + String id = "model" + pt + "Menu"; + subMenu = newMenu((i + 1) + "..." + Math.min(i + MAX_ITEMS, modelCount),getId(menu) + "." + id); + addMenuSubMenu(menu, subMenu); + htMenus.put(id, subMenu); + pt = 1; + } + addCheckboxMenuItem(subMenu, entryName, "model " + script + " #", null, (modelIndex == i)); } } @@ -661,7 +697,6 @@ String basename = (key.indexOf(";") >= 0 ? key.substring(0, key .indexOf(";")) : key); boolean b = viewer.getBooleanProperty(basename); - //System.out.println("set " + basename + " " + b +"#" + key + " " + getId(item)); setCheckBoxState(item, b); } if (x < 0) { @@ -679,6 +714,7 @@ Object[][] frankList = new Object[10][]; //enough to cover menu drilling int nFrankList = 0; String currentFrankId = null; + void setFrankMenu(String id) { if (currentFrankId != null && currentFrankId == id && nFrankList > 0) return; Modified: trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/popup/JmolPopupAwt.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -109,7 +109,7 @@ MenuItem mi = new MenuItem(entry); updateMenuItem(mi, entry, script); mi.addActionListener(mil); - mi.setName(id == null ? ((MenuComponent)menu).getName() : id); + mi.setName(id == null ? ((MenuComponent)menu).getName() + ".": id); addToMenu(menu, mi); return mi; } @@ -149,7 +149,7 @@ cmi.setState(state); cmi.addItemListener(cmil); cmi.setActionCommand(basename); - cmi.setName(id == null ? ((MenuComponent) menu).getName() : id); + cmi.setName(id == null ? ((MenuComponent) menu).getName() + "." : id); addToMenu(menu, cmi); return cmi; } Modified: trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/popup/JmolPopupSwing.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -116,7 +116,7 @@ JMenuItem jmi = new JMenuItem(entry); updateMenuItem(jmi, entry, script); jmi.addActionListener(mil); - jmi.setName(id == null ? ((Component)menu).getName() : id); + jmi.setName(id == null ? ((Component)menu).getName() + ".": id); addToMenu(menu, jmi); return jmi; } @@ -152,7 +152,7 @@ jcmi.setState(state); jcmi.addItemListener(cmil); jcmi.setActionCommand(basename); - jcmi.setName(id == null ? ((Component)menu).getName() : id); + jcmi.setName(id == null ? ((Component)menu).getName() + "." : id); addToMenu(menu, jcmi); return jcmi; } Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -73,7 +73,7 @@ { "selectMenu", "hideNotSelected;hide(none)Checkbox showSelectionsCheckbox - selectAll selectNone invertSelection - elementsComputedMenu - " - + "PDBproteinMenu PDBnucleicMenu PDBheteroMenu PDBcarbohydrate PDBnoneOfTheAbove" }, + + "PDBproteinMenu PDBnucleicMenu PDBheteroMenu PDBcarboMenu PDBnoneOfTheAbove" }, { "selectAll", "all" }, { "selectNone", "none" }, { "invertSelection", "not selected" }, @@ -92,10 +92,15 @@ { "positive ", "protein and basic" }, { "negativeCharge", "protein and acidic" }, { "noCharge", "protein and not (acidic,basic)" }, + { "allCarbo", "carbohydrate" }, { + "PDBcarboMenu", + "PDBcarboResiduesComputedMenu - allCarbo" }, + + { "PDBnucleicMenu", - "PDBnucleicResiduesComputedMenu allNucleic nucleicBackbone nucleicBases - " + "DNA RNA - " + "PDBnucleicResiduesComputedMenu - allNucleic nucleicBackbone nucleicBases - " + "DNA RNA - " + "atPairs auPairs gcPairs" }, { "allNucleic", "nucleic" }, { "DNA", "dna" }, @@ -123,7 +128,6 @@ { "exceptWater", "hetero and not water" }, { "Ligand", "ligand" }, - { "PDBcarbohydrate", "carbohydrate" }, // not implemented { "Lipid", "lipid" }, { "PDBnoneOfTheAbove", "not(hetero,protein,nucleic,carbohydrate)" }, @@ -475,6 +479,7 @@ { "noCharge", GT._("Uncharged Residues", true) }, { "PDBaaResiduesComputedMenu", GT._("By Residue Name", true) }, { "PDBnucleicResiduesComputedMenu", GT._("By Residue Name", true) }, + { "PDBcarboResiduesComputedMenu", GT._("By Residue Name", true) }, { "PDBheteroComputedMenu", GT._("By HETATM", true) }, { "PDBnucleicMenu", GT._("Nucleic", true) }, { "allNucleic", GT._("All", true) }, @@ -499,7 +504,9 @@ GT._("Nonaqueous Solvent") + " (solvent and not water)" }, { "exceptWater", GT._("Nonaqueous HETATM") + " (hetero and not water)" }, { "Ligand", GT._("Ligand") + " (hetero and not solvent)" }, - { "PDBcarbohydrate", GT._("Carbohydrate", true) }, + + { "allCarbo", GT._("All", true) }, + { "PDBcarboMenu", GT._("Carbohydrate", true) }, { "PDBnoneOfTheAbove", GT._("None of the above", true) }, { "FRAMESbyModelComputedMenu", GT._("Model/Frame", true) }, Modified: trunk/Jmol/src/org/jmol/viewer/Frame.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/viewer/Frame.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -278,11 +278,9 @@ .getAtomSetProperties(clientFile, i); Hashtable modelAuxiliaryInfo = adapter.getAtomSetAuxiliaryInfo( clientFile, i); - boolean isPDBModel = (isPDB || mmset.getModelAuxiliaryInfoBoolean(i, - "isPDB")); - mmset.setModelNameNumberProperties(i, modelName, modelNumber, - modelProperties, modelAuxiliaryInfo, isPDBModel); - if (isPDB) { + boolean isPDBModel = mmset.setModelNameNumberProperties(i, modelName, modelNumber, + modelProperties, modelAuxiliaryInfo, isPDB); + if (isPDBModel) { group3Lists[i] = JmolConstants.group3List; group3Counts[i] = new int[JmolConstants.group3Count + 10]; if (group3Lists[modelCount] == null) { Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -2081,6 +2081,11 @@ return "" + s; } + public final static boolean isHetero(String group3) { + int pt = group3List.indexOf("[" + (group3 + " ").substring(0, 3) + "]"); + return (pt < 0 || pt / 6 > GROUPID_PYRIMIDINE_LAST); + } + public final static String group3List = getGroup3List(); public final static int group3Count = group3List.length() / 6; Modified: trunk/Jmol/src/org/jmol/viewer/Mmset.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Mmset.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/jmol/viewer/Mmset.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -83,18 +83,20 @@ Hashtable getHeteroList(int modelIndex) { Hashtable htFull = new Hashtable(); + boolean ok = false; for (int i = modelCount; --i >= 0;) if (modelIndex < 0 || i == modelIndex) { Hashtable ht = (Hashtable) getModelAuxiliaryInfo(i, "hetNames"); if (ht == null) continue; + ok = true; Enumeration e = ht.keys(); while (e.hasMoreElements()) { String key = (String) e.nextElement(); htFull.put(key, ht.get(key)); } } - return htFull; + return (ok ? htFull : (Hashtable) getModelSetAuxiliaryInfo("hetNames")); } void freeze() { @@ -236,11 +238,12 @@ return models[modelIndex].nInsertions; } - void setModelNameNumberProperties(int modelIndex, String modelName, + boolean setModelNameNumberProperties(int modelIndex, String modelName, int modelNumber, Properties modelProperties, - Hashtable modelAuxiliaryInfo, - boolean isPDB) { + Hashtable modelAuxiliaryInfo, boolean isPDB) { + + modelNames[modelIndex] = modelName; modelNumbers[modelIndex] = modelNumber; this.modelProperties[modelIndex] = modelProperties; @@ -250,7 +253,7 @@ models[modelIndex].setNAltLocs(codes == null ? 0 : codes.length()); codes = (String) getModelAuxiliaryInfo(modelIndex, "insertionCodes"); models[modelIndex].setNInsertions(codes == null ? 0 : codes.length()); - models[modelIndex].isPDB = isPDB; + return models[modelIndex].isPDB = isPDB || getModelAuxiliaryInfoBoolean(modelIndex, "isPDB"); } int getAltLocCountInModel(int modelIndex) { Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-15 19:23:50 UTC (rev 5956) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2006-10-15 22:34:01 UTC (rev 5957) @@ -1474,7 +1474,7 @@ if (!haveDisplay.booleanValue()) return; - jmolpopup.updateComputedMenus(); +// jmolpopup.updateComputedMenus(); if (fullPathName == null) { // a 'clear/zap' operation return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-17 06:47:31
|
Revision: 5970 http://svn.sourceforge.net/jmol/?rev=5970&view=rev Author: hansonr Date: 2006-10-16 23:47:16 -0700 (Mon, 16 Oct 2006) Log Message: ----------- adds moveto [optional-time] PLACE where PLACE is one of: front, back, left, right, top, bottom This to implement in script what is possible with the application. Also added to the applet menu as "View->" Also introduces for select: atomIndex, like atomNo, but the internal Jmol index value for the atom. the XOR operator and "tog" operators XOR I thought might be useful -- it flips bits ON/OFF "TOG" is just my invention so that we have a script-equivalent of atom picking toggles. A tog B :: (A and B) == B ? A not B : A or B That is, if all the bits of B are set in A, then clear them from A; otherwise do a logical OR. So a typical "set picking group" click looks like: select selected tog (within(group, atomindex=324)) Then Modified Paths: -------------- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/viewer/Compiler.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Labels.java trunk/Jmol/src/org/jmol/viewer/PickingManager.java trunk/Jmol/src/org/jmol/viewer/Token.java trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -62,7 +62,7 @@ private static final String[][] structureContents = { { "popupMenu", - "modelSetMenu FRAMESbyModelComputedMenu CONFIGURATIONComputedMenu - selectMenu colorMenu renderMenu surfaceMenu SYMMETRYunitCellMenu - " + "modelSetMenu FRAMESbyModelComputedMenu CONFIGURATIONComputedMenu - selectMenu viewMenu renderMenu colorMenu - surfaceMenu SYMMETRYunitCellMenu - " + "zoomMenu spinMenu VIBRATIONMenu " + "FRAMESanimateMenu - " + "measureMenu pickingMenu - showConsole showMenu - " @@ -129,6 +129,13 @@ // not implemented { "Lipid", "lipid" }, { "PDBnoneOfTheAbove", "not(hetero,protein,nucleic,carbohydrate)" }, + { "viewMenu","front left right top bottom back" }, + { "front", "boundbox on;moveto 2.0 front;delay 1;boundbox off" }, + { "left", "boundbox on;moveto 1.0 front;moveto 2.0 left;delay 1;boundbox off" }, + { "right", "boundbox on;moveto 1.0 front;moveto 2.0 right;delay 1;boundbox off" }, + { "top", "boundbox on;moveto 1.0 front;moveto 2.0 top;delay 1;boundbox off" }, + { "bottom", "boundbox on;moveto 1.0 front;moveto 2.0 bottom;delay 1;boundbox off" }, + { "back", "boundbox on;moveto 1.0 front;moveto 2.0 back;delay 1;boundbox off" }, { "renderMenu", "perspectiveDepthCheckbox showBoundBoxCheckbox showUnitCellCheckbox showAxes;set_axesMolecularCheckbox stereoMenu - renderSchemeMenu - atomMenu labelMenu bondMenu hbondMenu ssbondMenu - " @@ -136,12 +143,13 @@ { "renderSchemeMenu", "renderCpkSpacefill renderBallAndStick " - + "renderSticks renderWireframe" }, - { "renderCpkSpacefill", "backbone off;wireframe off;spacefill 100%" }, - { "renderBallAndStick", "backbone off;spacefill 20%;wireframe 0.15" }, - { "renderSticks", "backbone off;spacefill off;wireframe 0.3" }, - { "renderWireframe", "backbone off;spacefill off;wireframe on" }, - { "renderBackbone", "spacefill off;wireframe off;backbone on" }, + + "renderSticks renderWireframe renderPDBCartoonsOnly renderPDBTraceOnly" }, + { "renderCpkSpacefill", "restrict not selected;select not selected;spacefill 100%;color cpk" }, + { "renderBallAndStick", "restrict not selected;select not selected;spacefill 20%;wireframe 0.15;color cpk" }, + { "renderSticks", "restrict not selected;select not selected;wireframe 0.3;color cpk" }, + { "renderWireframe", "restrict not selected;select not selected;wireframe on;color cpk" }, + { "renderPDBCartoonsOnly", "restrict not selected;select not selected;cartoons on;color structure" }, + { "renderPDBTraceOnly", "restrict not selected;select not selected;trace on;color structure" }, { "atomMenu", @@ -204,13 +212,13 @@ + "backbone cartoon cartoonRockets ribbons rockets strands trace" }, { "structureNone", "backbone off;cartoons off;ribbons off;rockets off;strands off;trace off;" }, - { "backbone", "backbone 0.3" }, - { "cartoon", "set cartoonRockets false;cartoons on" }, - { "cartoonRockets", "set cartoonRockets;cartoons on" }, - { "ribbons", "ribbons on" }, - { "rockets", "rockets on" }, - { "strands", "strands on" }, - { "trace", "trace 0.3" }, + { "backbone", "restrict not selected;select not selected;backbone 0.3" }, + { "cartoon", "restrict not selected;select not selected;set cartoonRockets false;cartoons on" }, + { "cartoonRockets", "restrict not selected;select not selected;set cartoonRockets;cartoons on" }, + { "ribbons", "restrict not selected;select not selected;ribbons on" }, + { "rockets", "restrict not selected;select not selected;rockets on" }, + { "strands", "restrict not selected;select not selected;strands on" }, + { "trace", "restrict not selected;select not selected;trace 0.3" }, { "VIBRATIONMenu", "vibrationOff vibrationOn VIBRATIONvectorMenu" }, { "vibrationOff", "vibration off" }, @@ -414,18 +422,18 @@ { "surfOff", "isosurface delete;select *;dots off" }, { "SYMMETRYunitCellMenu", - "oneUnitCell fourUnitCells nineUnitCells nineUnitCellsRestricted" }, + "oneUnitCell nineUnitCells nineUnitCellsRestricted nineUnitCellsPoly" }, { "oneUnitCell", "save orientation;load \"\" {1 1 1} ;restore orientation;center" }, - { "fourUnitCells", - "save orientation;load \"\" {2 2 2} ;restore orientation;center" }, { "nineUnitCells", - "save orientation;load \"\" {3 3 3} ;restore orientation;center" }, - { - "nineUnitCellsRestricted", - "save orientation;load \"\" {3 3 3} ;restore orientation;unitCell {1 1 1}; restrict cell=666; polyhedra 4,6 (visible);center visible;zoom 200" }, + "save orientation;load \"\" {444 666 1} ;restore orientation;center" }, + {"nineUnitCellsRestricted", + "save orientation;load \"\" {444 666 1} ;restore orientation; unitcell on; display cell=555;center visible;zoom 200" }, + {"nineUnitCellsPoly", + "save orientation;load \"\" {444 666 1} ;restore orientation; unitcell on; display cell=555; polyhedra 4,6 (displayed);center (visible);zoom 200" }, + { "_AxesMenu", "off dotted - byPixelMenu byAngstromMenu" }, { "_BoundBoxMenu", null }, { "_UnitCellMenu", null }, @@ -466,6 +474,14 @@ { "hideNotSelected;hide(none)Checkbox", GT._("Display Selected Only", true) }, { "invertSelection", GT._("Invert Selection", true) }, + { "viewMenu", GT._("View", true) }, + { "front", GT._("Front", true) }, + { "left", GT._("Left", true) }, + { "right", GT._("Right", true) }, + { "top", GT._("Top", true) }, + { "bottom", GT._("Bottom", true) }, + { "back", GT._("Back", true) }, + { "PDBproteinMenu", GT._("Protein", true) }, { "allProtein", GT._("All", true) }, { "proteinBackbone", GT._("Backbone", true) }, @@ -515,7 +531,8 @@ { "renderBallAndStick", GT._("Ball and Stick", true) }, { "renderSticks", GT._("Sticks", true) }, { "renderWireframe", GT._("Wireframe", true) }, - { "renderBackbone", GT._("Backbone", true) }, + { "renderPDBCartoonsOnly", GT._("Cartoon", true) }, + { "renderPDBTraceOnly", GT._("Trace", true) }, { "atomMenu", GT._("Atoms", true) }, { "atomNone", GT._("Off", true) }, @@ -767,9 +784,10 @@ { "SYMMETRYunitCellMenu", GT._("Symmetry", true) }, { "oneUnitCell", GT._("Reload {0}", "{1 1 1}", true) }, - { "fourUnitCells", GT._("Reload {0}", "{2 2 2}", true) }, - { "nineUnitCells", GT._("Reload {0}", "{3 3 3}", true) }, - { "nineUnitCellsRestricted", GT._("Reload {0}", "Polyhedra", true) }, + { "nineUnitCells", GT._("Reload {0}", "{444 666 1}", true) }, + { "nineUnitCellsRestricted", GT._("Reload {0}", "{444 666 1};display 555", true) }, + { "nineUnitCellsPoly", GT._("Reload {0}", "+ Polyhedra", true) }, + { "_AxesMenu", GT._("Axes", true) }, { "_BoundBoxMenu", GT._("Boundbox", true) }, { "_UnitCellMenu", GT._("Unitcell", true) }, Modified: trunk/Jmol/src/org/jmol/viewer/Compiler.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -876,7 +876,7 @@ expression :: = clauseOr - clauseOr ::= clauseAnd {OR clauseAnd}* + clauseOr ::= clauseAnd {OR|XOR|OrNot clauseAnd}* clauseAnd ::= clauseNot {AND clauseNot}* @@ -1041,7 +1041,9 @@ boolean clauseOr() { if (! clauseAnd()) return false; - while (tokPeek() == Token.opOr) { + //for simplicity, giving XOR (toggle) same precedence as OR + //OrNot: First OR, but if that makes no change, then NOT (special toggle) + while (tokPeek() == Token.opOr || tokPeek() == Token.opXor || tokPeek() == Token.opToggle) { Token tokenOr = tokenNext(); if (! clauseAnd()) return false; Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -772,19 +772,8 @@ case Token.string: strbufLog.append("\"" + token.value + "\""); continue; - case Token.opEQ: - case Token.opNE: - case Token.opGT: - case Token.opGE: - case Token.opLT: - case Token.opLE: - try { - strbufLog.append(Token.atomPropertyNames[token.intValue & 0x0F]); - } catch (Exception e) { - strbufLog.append(token.value); - } - strbufLog.append(Token.comparatorNames[token.tok & 0x0F]); - break; + default: + strbufLog.append(token.toString()); } strbufLog.append("" + token.value); } @@ -833,6 +822,10 @@ bs = stack[--sp]; stack[sp - 1].or(bs); break; + case Token.opXor: + bs = stack[--sp]; + stack[sp - 1].xor(bs); + break; case Token.opAnd: bs = stack[--sp]; stack[sp - 1].and(bs); @@ -841,6 +834,10 @@ bs = stack[sp - 1]; notSet(bs); break; + case Token.opToggle: + bs = stack[--sp]; + toggle(stack[sp-1], bs); + break; case Token.within: if (thisCoordinate != null) { Object withinSpec = instruction.value; @@ -956,6 +953,19 @@ return stack[0]; } + void toggle(BitSet A, BitSet B) { + for (int i = viewer.getAtomCount(); --i >= 0;) { + if (!B.get(i)) + continue; + if (A.get(i)) { //both set --> clear A + A.clear(i); + } else { + A.or(B); //A is not set --> return all on + return; + } + } + } + void notSet(BitSet bs) { for (int i = viewer.getAtomCount(); --i >= 0;) { if (bs.get(i)) @@ -1074,6 +1084,9 @@ case Token.atomno: propertyValue = atom.getAtomNumber(); break; + case Token.atomIndex: + propertyValue = i; + break; case Token.elemno: propertyValue = atom.getElementNumber(); break; @@ -1818,36 +1831,66 @@ } void moveto() throws ScriptException { - //moveto time { x y z deg} zoom xTrans yTrans - if (statementLength == 2) { + //moveto time + //moveto [time] { x y z deg} zoom xTrans yTrans + //moveto [time] front|back|left|right|top|bottom + if (statementLength < 2) + badArgumentCount(); + if (statementLength == 2 && isFloatParameter(1)) { refresh(); viewer - .moveTo(floatParameter(1), null, new Point3f(0, 0, 1), 0, 100, 0, 0); + .moveTo(floatParameter(1), null, new Point3f(0, 0, 1), 0, 100, 0, 0, 0); return; } - if (statementLength < 6) - badArgumentCount(); - Point3f pt; + Point3f pt = new Point3f(); Point3f center = null; - float floatSecondsTotal = floatParameter(1); + int i = 1; + float floatSecondsTotal = (isFloatParameter(1)? floatParameter(i++) : 2.0f); float zoom = 100; float xTrans = 0; float yTrans = 0; - int i = 2; - float degrees = 0; - if (statement[2].tok == Token.leftbrace) { + float degrees = 90; + switch (statement[i].tok) { + case Token.leftbrace: // {X, Y, Z} deg or {x y z deg} if (isCoordinate3(i)) { - pt = getCoordinate(2, true); + pt = getCoordinate(i, true); i = pcLastExpressionInstruction + 1; - degrees = floatParameter(i++); + degrees = floatParameter(i++); } else { Point4f pt4 = getPoint4f(i); - pt = new Point3f(pt4.x, pt4.y, pt4.z); + pt.set(pt4.x, pt4.y, pt4.z); degrees = pt4.w; i = pcLastExpressionInstruction + 1; } - } else { + break; + case Token.front: + pt.set(1, 0, 0); + degrees = 0f; + i++; + break; + case Token.back: + pt.set(0, 1, 0); + degrees = 180f; + i++; + break; + case Token.left: + pt.set(0, 1, 0); + i++; + break; + case Token.right: + pt.set(0, -1, 0); + i++; + break; + case Token.top: + pt.set(1, 0, 0); + i++; + break; + case Token.bottom: + pt.set(-1, 0, 0); + i++; + break; + default: //X Y Z deg pt = new Point3f(floatParameter(i++), floatParameter(i++), floatParameter(i++)); @@ -1859,17 +1902,16 @@ xTrans = floatParameter(i++); yTrans = floatParameter(i++); } - float rotationRadius = 10; + float rotationRadius = 0; if (i != statementLength) { center = atomCenterOrCoordinateParameter(i); i = pcLastExpressionInstruction + 1; - if (i == statementLength) - rotationRadius = viewer.calcRotationRadius(center); - else + if (i != statementLength) rotationRadius = floatParameter(i++); } refresh(); - viewer.moveTo(floatSecondsTotal, center, pt, degrees, zoom, xTrans, yTrans, rotationRadius); + viewer.moveTo(floatSecondsTotal, center, pt, degrees, zoom, xTrans, yTrans, + rotationRadius); } void bondorder() throws ScriptException { @@ -3899,6 +3941,10 @@ break; case Token.identifier: String str = (String) statement[1].value; + if (str.equalsIgnoreCase("toggleLabel")) { + viewer.togglePickingLabel(expression(statement, 2)); + break; + } if (str.equalsIgnoreCase("measurementNumbers")) { setMonitor(2); break; Modified: trunk/Jmol/src/org/jmol/viewer/Labels.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Labels.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/viewer/Labels.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -177,20 +177,22 @@ defaultAlignment = alignment; } - if ("pickingLabel" == propertyName) { + if ("toggleLabel" == propertyName) { // toggle - int atomIndex = ((Integer) value).intValue(); - Atom atom = atoms[atomIndex]; - if (strings != null && strings.length > atomIndex - && strings[atomIndex] != null) { - strings[atomIndex] = null; - } else { - String strLabel = viewer.getStandardLabelFormat(); - strings = ArrayUtil.ensureLength(strings, atomIndex + 1); - strings[atomIndex] = atom.formatLabel(strLabel); - } - atom.setShapeVisibility(myVisibilityFlag, strings[atomIndex] != null); - return; + for (int atomIndex = frame.atomCount; --atomIndex >= 0;) + if (bsSelected.get(atomIndex)) { + Atom atom = atoms[atomIndex]; + if (strings != null && strings.length > atomIndex + && strings[atomIndex] != null) { + strings[atomIndex] = null; + } else { + String strLabel = viewer.getStandardLabelFormat(); + strings = ArrayUtil.ensureLength(strings, atomIndex + 1); + strings[atomIndex] = atom.formatLabel(strLabel); + } + atom.setShapeVisibility(myVisibilityFlag, strings[atomIndex] != null); + return; + } } } Modified: trunk/Jmol/src/org/jmol/viewer/PickingManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PickingManager.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/viewer/PickingManager.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -25,7 +25,6 @@ import org.jmol.util.Logger; -import java.util.BitSet; import org.jmol.i18n.GT; class PickingManager { @@ -56,7 +55,7 @@ if (atomIndex == -1) { if (pickingStyleSelect == JmolConstants.PICKINGSTYLE_SELECT_PFAAT && !shiftKey && !alternateKey) { - viewer.clearSelection(); + viewer.script("select none"); reportSelection(); } if (pickingMode == JmolConstants.PICKING_MEASURE @@ -120,45 +119,38 @@ toggleMeasurement(4); break; case JmolConstants.PICKING_LABEL: - viewer.togglePickingLabel(atomIndex); + viewer.script("set toggleLabel (atomindex="+atomIndex+")"); break; case JmolConstants.PICKING_CENTER: - BitSet bs = new BitSet(); - bs.set(atomIndex); - viewer.setCenterBitSet(bs, false); + viewer.script("center (atomindex=" + atomIndex+")"); break; case JmolConstants.PICKING_SELECT_ATOM: - applyMouseStyle(atomIndex, shiftKey, alternateKey); + applyMouseStyle("atomIndex="+atomIndex, shiftKey, alternateKey); viewer.clearClickCount(); break; case JmolConstants.PICKING_SELECT_GROUP: - BitSet bsGroup = frame.getGroupBitSet(atomIndex); - applyMouseStyle(bsGroup, shiftKey, alternateKey); + applyMouseStyle("within(group, atomIndex=" + atomIndex+")", shiftKey, alternateKey); viewer.clearClickCount(); break; case JmolConstants.PICKING_SELECT_CHAIN: - BitSet bsChain = frame.getChainBitSet(atomIndex); - applyMouseStyle(bsChain, shiftKey, alternateKey); + applyMouseStyle("within(chain, atomIndex=" + atomIndex+")", shiftKey, alternateKey); viewer.clearClickCount(); break; case JmolConstants.PICKING_SELECT_MOLECULE: - BitSet bsMolecule = frame.getMoleculeBitSet(atomIndex); - applyMouseStyle(bsMolecule, shiftKey, alternateKey); + applyMouseStyle("within(molecule, atomIndex=" + atomIndex+")", shiftKey, alternateKey); viewer.clearClickCount(); break; case JmolConstants.PICKING_SELECT_SITE: - BitSet bsSite = frame.getVisibleSiteBitSet(atomIndex); - applyMouseStyle(bsSite, shiftKey, alternateKey); + applyMouseStyle("within(site, atomIndex=" + atomIndex+")", shiftKey, alternateKey); viewer.clearClickCount(); break; case JmolConstants.PICKING_SELECT_ELEMENT: - BitSet bsElement = frame.getVisibleElementBitSet(atomIndex); - applyMouseStyle(bsElement, shiftKey, alternateKey); + applyMouseStyle("within(element, atomIndex=" + atomIndex+")", shiftKey, alternateKey); viewer.clearClickCount(); break; case JmolConstants.PICKING_SPIN: if (viewer.getSpinOn()) { - viewer.setSpinOn(false); + viewer.script("spin off"); break; } if (queuedAtomCount >= 2) @@ -167,14 +159,14 @@ break; queueAtom(atomIndex); if (queuedAtomCount < 2) { - viewer.setSpinOn(false); + if (viewer.getSpinOn()) + viewer.script("spin off"); viewer.scriptStatus(queuedAtomCount == 1 ? GT._("pick one more atom in order to spin the model around an axis") : GT._("pick two atoms in order to spin the model around an axis")); break; } - viewer - .startSpinningAxis(queuedAtomIndexes[0], atomIndex, false/*isClockwise*/); + viewer.script("spin (atomindex="+queuedAtomIndexes[0]+") (atomIndex="+atomIndex+")"); } } @@ -192,44 +184,26 @@ viewer.toggleMeasurement(countPlusIndexes); } - void applyMouseStyle(int atomIndex, boolean shiftKey, boolean alternateKey) { + void applyMouseStyle(String item, boolean shiftKey, boolean alternateKey) { + item = "(" + item + ")"; if (pickingStyleSelect == JmolConstants.PICKINGSTYLE_SELECT_PFAAT) { if (shiftKey && alternateKey) - viewer.removeSelection(atomIndex); + viewer.script("select selected and not " + item); else if (shiftKey) - viewer.toggleSelection(atomIndex); + viewer.script("select selected tog " + item); //toggle else if (alternateKey) - viewer.addSelection(atomIndex); + viewer.script("select selected or " + item); else - viewer.setSelection(atomIndex); + viewer.script("select " + item); } else { if (shiftKey | pickingStyleSelect == JmolConstants.PICKINGSTYLE_SELECT_CHIME) - viewer.toggleSelection(atomIndex); + viewer.script("select selected tog " + item); //toggle else - viewer.setSelection(atomIndex); + viewer.script("select " + item); } reportSelection(); } - void applyMouseStyle(BitSet bs, boolean shiftKey, boolean alternateKey) { - if (pickingStyleSelect == JmolConstants.PICKINGSTYLE_SELECT_PFAAT) { - if (shiftKey && alternateKey) - viewer.removeSelection(bs); - else if (shiftKey) - viewer.toggleSelectionSet(bs); - else if (alternateKey) - viewer.addSelection(bs); - else - viewer.setSelectionSet(bs); - } else { - if (shiftKey | pickingStyleSelect == JmolConstants.PICKINGSTYLE_SELECT_CHIME) - viewer.toggleSelectionSet(bs); - else - viewer.setSelectionSet(bs); - } - reportSelection(); - } - void reportSelection() { viewer.reportSelection("" + viewer.getSelectionCount() + " " + GT._("atoms selected")); } Modified: trunk/Jmol/src/org/jmol/viewer/Token.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -85,25 +85,23 @@ // every predefined is also valid in an expression context final static int comparator = (1 << 17) | expression; final static int predefinedset = (1 << 18) | expression; + final static int colorparam = (1 << 19); final static int specialstring = (1 << 20); // echo, label // generally, the minus sign is used to denote atom ranges // this property is used for the few commands which allow negative integers - final static int negnums = (1 << 21); + final static int negnums = (1 << 21); // for some commands the 'set' is optional // so, just delete the set command from the token list // but not for hbonds nor ssbonds final static int setspecial = (1 << 22); final static int objectid = (1 << 23); - final static int colorparam = (1 << 19); + final static int coordOrSet = negnums | embeddedExpression; - // These are unrelated final static int varArgCount = (1 << 4); final static int onDefault1 = (1 << 5) | 1; - final static int coordOrSet = negnums | embeddedExpression; - // rasmol commands final static int backbone = command | 0 | bool | predefinedset; final static int background = command | 1 | colorparam | setspecial; @@ -135,7 +133,7 @@ final static int save = command | 28 | showparam; final static int script = command | 29 | specialstring; final static int select = command | 30 | expressionCommand; - final static int set = command | 31 | bool | negnums; + final static int set = command | 31 | bool | negnums | embeddedExpression; final static int show = command | 32; final static int slab = command | 33 | bool; final static int cpk = command | 35 | setparam | bool | negnums; @@ -215,7 +213,6 @@ // monitor final static int mouse = setparam | 13; final static int picking = setparam | 14; - // final static int radius = setparam | 15 | atomproperty; final static int shadow = setparam | 15; final static int slabmode = setparam | 16; // solvent @@ -244,7 +241,6 @@ final static int diffuse = setparam | 30; final static int labeloffset = setparam | 31; final static int frank = setparam | 32 | command; - final static int formalCharge = setparam | 33 | atomproperty; final static int partialCharge= setparam | 34; final static int pickingStyle = setparam | 35; final static int spacegroup = setparam | 36 | showparam; @@ -311,6 +307,8 @@ final static int connected = expression | 20; final static int altloc = expression | 21; final static int insertion = expression | 22; + final static int opXor = expression | 23; + final static int opToggle = expression | 24; @@ -327,20 +325,23 @@ final static int radius = atomproperty | 3 | setparam; final static int temperature = atomproperty | 4; final static int model = atomproperty | 5 | showparam | command; + final static int _bondedcount = atomproperty | 6; final static int _groupID = atomproperty | 7; final static int _atomID = atomproperty | 8; final static int _structure = atomproperty | 9; final static int occupancy = atomproperty | 10; + final static int polymerLength= atomproperty | 11; - final static int molecule = atomproperty | command | 12; + final static int molecule = atomproperty | 12 | command; final static int cell = atomproperty | 13; final static int site = atomproperty | 14; final static int element = atomproperty | 15; final static int symop = atomproperty | 16; final static int surfacedistance = atomproperty | 17; + final static int atomIndex = atomproperty | 18; + final static int formalCharge = atomproperty | 19 | setparam ; - final static int opGT = comparator | 0; final static int opGE = comparator | 1; final static int opLE = comparator | 2; @@ -412,6 +413,12 @@ final static int range = misc | 62; final static int point3f = misc | 63; final static int sasurface = misc | 64; + final static int left = misc | 65; + final static int right = misc | 66; + final static int front = misc | 67; + final static int back = misc | 68; + final static int top = misc | 69; + final static int bottom = misc | 70; final static int amino = predefinedset | 0; @@ -437,21 +444,14 @@ final static Token tokenOn = new Token(on, 1, "on"); final static Token tokenAll = new Token(all, "all"); final static Token tokenAnd = new Token(opAnd, "and"); - final static Token tokenElemno = new Token(elemno, "elemno"); final static Token tokenExpressionBegin = new Token(expressionBegin, "expressionBegin"); final static Token tokenExpressionEnd = new Token(expressionEnd, "expressionEnd"); - final static String[] comparatorNames = {">", ">=", "<=", "<", "=", "!="}; - final static String[] atomPropertyNames = { - "atomno", "elemno", "resno", "radius", "temperature", "model", - "_bondedcount", "_groupID", "_atomID", "_structure", "occupancy", - "polymerLength", "molecule", "altloc","insertion"}; - /* - Note that the RasMol scripting language is case-insensitive. + Note that the Jmol scripting language is case-insensitive. So, the compiler turns all identifiers to lower-case before looking up in the hash table. Therefore, the left column of this array *must* be lower-case @@ -671,6 +671,10 @@ "||", null, "not", new Token(opNot, "not"), "!", null, + "xor", new Token(opXor, "xor"), + "~", null, + "tog", new Token(opToggle, "tog"), + ",|", null, "<", new Token(opLT, "<"), "<=", new Token(opLE, "<="), ">=", new Token(opGE, ">="), @@ -693,9 +697,9 @@ "/", new Token(slash, "/"), "substructure", new Token(substructure, "substructure"), "connected", new Token(connected, "connected"), - + "atomindex", new Token(atomIndex, "atomIndex"), "atomno", new Token(atomno, "atomno"), - "elemno", tokenElemno, + "elemno", new Token(elemno, "elemno"), "_e", null, "element", new Token(element, "element"), "resno", new Token(resno, "resno"), @@ -794,7 +798,12 @@ "range", new Token(range, "range"), "point3f", new Token(point3f, "point3f"), "sasurface", new Token(sasurface, "sasurface"), - + "top", new Token(top, "top"), + "bottom", new Token(bottom, "bottom"), + "left", new Token(left, "left"), + "right", new Token(right, "right"), + "front", new Token(front, "front"), + "back", new Token(back, "back"), }; static Hashtable map = new Hashtable(); Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -1072,7 +1072,7 @@ void moveTo(float floatSecondsTotal, Point3f center, Point3f pt, float degrees, float zoom, float xTrans, float yTrans, float newRotationRadius) { - + Vector3f axis = new Vector3f(pt); initializeMoveTo(); if (degrees < 0.01f && degrees > -0.01f) { @@ -1103,7 +1103,8 @@ ptCenter = (center == null ? fixedRotationCenter : center); float startRotationRadius = rotationRadius; float targetRotationRadius = (center == null ? rotationRadius - : newRotationRadius); + : newRotationRadius <= 0 ? viewer.calcRotationRadius(center) + : newRotationRadius); float startPixelScale = scaleDefaultPixelsPerAngstrom; float targetPixelScale = (center == null ? startPixelScale : defaultScaleToScreen(targetRotationRadius)); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -336,7 +336,6 @@ void setCenterBitSet(BitSet bsCenter, boolean doScale) { //Eval - //PickingManager.atomPicked() //setCenterSelected transformManager.setCenterBitSet(bsCenter, doScale); refresh(0, "Viewer:setCenterBitSet()"); @@ -420,12 +419,12 @@ final static float radiansPerDegree = (float) (2 * Math.PI / 360); public void rotateToX(int angleDegrees) { - //app DisplayPanel.BottomAction, .TopAction; + //not in this project rotateToX(angleDegrees * radiansPerDegree); } public void rotateToY(int angleDegrees) { - //app DisplayPanel.LeftAction, .RightAction; + //not in this project rotateToY(angleDegrees * radiansPerDegree); } @@ -437,14 +436,12 @@ void translateToXPercent(float percent) { //Eval.translate() - //StateManager.Orientation() transformManager.translateToXPercent(percent); refresh(1, "Viewer:translateToXPercent()"); } void translateToYPercent(float percent) { //Eval.translate() - //StateManager.Orientation() transformManager.translateToYPercent(percent); refresh(1, "Viewer:translateToYPercent()"); } @@ -684,7 +681,6 @@ void setSpinOn(boolean spinOn) { //Eval - //PickingManager.atomPicked //startSpinningAxis transformManager.setSpinOn(spinOn); } @@ -851,18 +847,6 @@ // delegated to SelectionManager // /////////////////////////////////////////////////////////////// - void removeSelection(int atomIndex) { - //PickingManager.applyMouseStyle - selectionManager.removeSelection(atomIndex); - refresh(0, "Viewer:removeSelection()"); - } - - void removeSelection(BitSet set) { - //PickingManager.applyMouseStyle - selectionManager.removeSelection(set); - refresh(0, "Viewer:removeSelection()"); - } - void select(BitSet bs) { //Eval //StateManager @@ -883,30 +867,6 @@ return selectionManager.getHiddenSet(); } - void addSelection(int atomIndex) { - //PickingManager.applyMouseStyle - selectionManager.addSelection(atomIndex); - refresh(0, "Viewer:addSelection()"); - } - - void addSelection(BitSet set) { - //PickingManager.applyMouseStyle - selectionManager.addSelection(set); - refresh(0, "Viewer:addSelection()"); - } - - void toggleSelection(int atomIndex) { - //PickingManager.applyMouseStyle - selectionManager.toggleSelection(atomIndex); - refresh(0, "Viewer:toggleSelection()"); - } - - void setSelection(int atomIndex) { - //PickingManager.applyMouseStyle - selectionManager.setSelection(atomIndex); - refresh(0, "Viewer:setSelection()"); - } - boolean isSelected(int atomIndex) { return selectionManager.isSelected(atomIndex); } @@ -925,14 +885,13 @@ } public void clearSelection() { - //app DisplayPanel.DeselectallAction - //PickingManager.atomPicked (Pfatt) + //not used in this project; in jmolViewer interface, though selectionManager.clearSelection(); refresh(0, "Viewer:clearSelection()"); } public void setSelectionSet(BitSet set) { - //PickingManager.applyMouseStyle + //not used in this project; in jmolViewer interface, though selectionManager.setSelectionSet(set); refresh(0, "Viewer:setSelectionSet()"); } @@ -941,12 +900,6 @@ selectionManager.setHideNotSelected(TF); } - void toggleSelectionSet(BitSet set) { - //PickingManager.applyMouseStyle - selectionManager.toggleSelectionSet(set); - refresh(0, "Viewer:toggleSelectionSet()"); - } - void invertSelection() { //Eval selectionManager.invertSelection(); @@ -2456,14 +2409,11 @@ setShapeProperty(JmolConstants.SHAPE_LABELS, "label", strLabel); } - void togglePickingLabel(int atomIndex) { - //PickingManage.atomPicked ** - if (atomIndex < 0) - return; - // hack to force it to load + void togglePickingLabel(BitSet bs) { + //eval set toggleLabel (atomset) setShapeSize(JmolConstants.SHAPE_LABELS, styleManager.pointsLabelFontSize); - modelManager.setShapeProperty(JmolConstants.SHAPE_LABELS, "pickingLabel", - new Integer(atomIndex), null); + modelManager.setShapeProperty(JmolConstants.SHAPE_LABELS, "toggleLabel", + null, bs); refresh(0, "Viewer:"); } Modified: trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-16 22:21:14 UTC (rev 5969) +++ trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-17 06:47:16 UTC (rev 5970) @@ -194,7 +194,7 @@ public void actionPerformed(ActionEvent e) { if (viewer.haveFrame()) { - viewer.selectAll(); + viewer.script("select all"); } } } @@ -209,7 +209,7 @@ public void actionPerformed(ActionEvent e) { if (viewer.haveFrame()) { - viewer.clearSelection(); + viewer.script("select none"); } } } @@ -287,7 +287,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.rotateFront(); + viewer.script("boundbox on;moveto 2.0 front;delay 1;boundbox off"); } } @@ -299,7 +299,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.rotateToX(90); + viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 top;delay 1;boundbox off"); } } @@ -311,7 +311,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.rotateToX(-90); + viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 bottom;delay 1;boundbox off"); } } @@ -323,7 +323,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.rotateToY(90); + viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 right;delay 1;boundbox off"); } } @@ -335,7 +335,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.rotateToY(-90); + viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 left;delay 1;boundbox off"); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-17 14:35:50
|
Revision: 5972 http://svn.sourceforge.net/jmol/?rev=5972&view=rev Author: hansonr Date: 2006-10-17 07:35:34 -0700 (Tue, 17 Oct 2006) Log Message: ----------- fully script-driven Viewer Modified Paths: -------------- trunk/Jmol/src/org/jmol/api/JmolViewer.java trunk/Jmol/src/org/jmol/viewer/Compiler.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Measurement.java trunk/Jmol/src/org/jmol/viewer/MouseManager.java trunk/Jmol/src/org/jmol/viewer/PickingManager.java trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java trunk/Jmol/src/org/openscience/jmol/app/MeasurementTable.java Modified: trunk/Jmol/src/org/jmol/api/JmolViewer.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolViewer.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/api/JmolViewer.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -69,12 +69,7 @@ abstract public void pushHoldRepaint(); abstract public void popHoldRepaint(); - abstract public void setJmolDefaults(); - abstract public void setRasmolDefaults(); - abstract public void setDebugScript(boolean debugScript); - abstract public void setFrankOn(boolean frankOn); - // change this to width, height abstract public void setScreenDimension(Dimension dim); abstract public int getScreenWidth(); @@ -93,8 +88,7 @@ abstract public void showUrl(String urlString); - abstract public void deleteMeasurement(int i); - abstract public void clearMeasurements(); + abstract public int getMeasurementCount(); abstract public String getMeasurementStringValue(int i); abstract public int[] getMeasurementCountPlusIndices(int i); @@ -104,7 +98,6 @@ abstract public BitSet getElementsPresentBitSet(); abstract public int getAnimationFps(); - abstract public void setAnimationFps(int framesPerSecond); abstract public String script(String script); abstract public String scriptCheck(String script); @@ -115,10 +108,6 @@ abstract public String evalStringQuiet(String script); abstract public boolean isScriptExecuting(); - abstract public void setVectorScale(float vectorScaleValue); - abstract public void setVibrationScale(float vibrationScaleValue); - abstract public void setVibrationPeriod(float vibrationPeriod); - abstract public String getModelSetName(); abstract public String getModelSetFileName(); abstract public String getModelSetPathName(); @@ -146,42 +135,22 @@ abstract public int getPolymerCountInModel(int modelIndex); abstract public int getSelectionCount(); - abstract public void setModeMouse(int modeMouse); - abstract public void setSelectionHaloEnabled(boolean haloEnabled); + abstract public void setModeMouse(int modeMouse); //only MOUSEMODE_NONE + abstract public void setSelectionHalos(boolean haloEnabled); - abstract public void setShowHydrogens(boolean showHydrogens); - abstract public void setShowMeasurements(boolean showMeasurements); - - abstract public void selectAll(); - abstract public void clearSelection(); - abstract public void addSelectionListener(JmolSelectionListener listener); abstract public void removeSelectionListener(JmolSelectionListener listener); - abstract public void setSelectionSet(BitSet newSelection); //BH 2/2006 abstract public BitSet getSelectionSet(); abstract public void homePosition(); - abstract public void rotateFront(); - abstract public void rotateToX(int degrees); - abstract public void rotateToY(int degrees); - abstract public void rotateToX(float radians); - abstract public void rotateToY(float radians); - abstract public void rotateToZ(float radians); - - abstract public void setCenterSelected(); - abstract public Hashtable getHeteroList(int modelIndex); - abstract public void setPerspectiveDepth(boolean perspectiveDepth); abstract public boolean getPerspectiveDepth(); abstract public boolean getShowHydrogens(); abstract public boolean getShowMeasurements(); - - abstract public void setShowAxes(boolean showAxes); abstract public boolean getShowAxes(); - abstract public void setShowBbcage(boolean showBbcage); abstract public boolean getShowBbcage(); abstract public int getAtomNumber(int atomIndex); @@ -194,6 +163,7 @@ abstract public Matrix4f getUnscaledTransformMatrix(); abstract public int getBackgroundArgb(); + abstract public void setColorBackground(String colorName); abstract public float getAtomRadius(int atomIndex); @@ -212,29 +182,22 @@ abstract public Point3f[] getPolymerLeadMidPoints(int modelIndex, int polymerIndex); abstract public boolean getAxesOrientationRasmol(); - abstract public void setAxesOrientationRasmol(boolean axesMessedUp); abstract public int getPercentVdwAtom(); - abstract public void setPercentVdwAtom(int percentVdwAtom); abstract public boolean getAutoBond(); - abstract public void setAutoBond(boolean autoBond); - // EVIL! abstract public short getMadBond(); - abstract public void setMarBond(short marBond); abstract public float getBondTolerance(); - abstract public void setBondTolerance(float bondTolerance); abstract public void rebond(); abstract public float getMinBondDistance(); - abstract public void setMinBondDistance(float minBondDistance); abstract public void refresh(int isOrientationChange, String strWhy); abstract public boolean getBooleanProperty(String propertyName); - abstract public void setBooleanProperty(String propertyName, boolean value); + abstract public boolean showModelSetDownload(); @@ -255,6 +218,60 @@ abstract public void setSyncDriver(int syncMode); abstract public int getSyncMode(); + + //these are still used by preferences dialog + abstract public void setShowHydrogens(boolean showHydrogens); + abstract public void setShowMeasurements(boolean showMeasurements); + abstract public void setPerspectiveDepth(boolean perspectiveDepth); + abstract public void setShowAxes(boolean showAxes); + abstract public void setShowBbcage(boolean showBbcage); + abstract public void setJmolDefaults(); + abstract public void setRasmolDefaults(); + abstract public void setAutoBond(boolean autoBond); + abstract public void setMarBond(short marBond); + abstract public void setBondTolerance(float bondTolerance); + abstract public void setMinBondDistance(float minBondDistance); + abstract public void setAxesOrientationRasmol(boolean axesMessedUp); + abstract public void setPercentVdwAtom(int percentVdwAtom); +//unused in Jmol.java; DO NOT USE if you want a complete command history: +//for each of these the script equivalent is shown + abstract public void setAnimationFps(int framesPerSecond); + //viewer.script("animation fps x.x") + abstract public void setFrankOn(boolean frankOn); + //viewer.script("frank on") + abstract public void setDebugScript(boolean debugScript); + //viewer.script("set logLevel 5/4") + //viewer.script("set debugScript on/off") + abstract public void deleteMeasurement(int i); + //viewer.script("measures delete " + (i + 1)); + abstract public void clearMeasurements(); + //viewer.script("measures delete"); + abstract public void setVectorScale(float vectorScaleValue); + //viewer.script("vector scale " + vectorScaleValue); + abstract public void setVibrationScale(float vibrationScaleValue); + //viewer.script("vibration scale " + vibrationScaleValue); + abstract public void setVibrationPeriod(float vibrationPeriod); + //viewer.script("vibration " + vibrationPeriod); + abstract public void selectAll(); + //viewer.script("select all"); + abstract public void clearSelection(); + //viewer.script("select none"); + abstract public void rotateFront(); + //viewer.script("moveTo 2.0 Front"); + abstract public void setCenterSelected(); + //viewer.script("center (selected)"); + abstract public void setBooleanProperty(String propertyName, boolean value); + //viewer.script("set " + propertyName + " " + value); + + //no direct script equivalent, but you should not need them anyway: + + abstract public void setSelectionSet(BitSet newSelection); + abstract public void rotateToX(int degrees); + abstract public void rotateToY(int degrees); + abstract public void rotateToX(float radians); + abstract public void rotateToY(float radians); + abstract public void rotateToZ(float radians); + } Modified: trunk/Jmol/src/org/jmol/viewer/Compiler.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -304,7 +304,7 @@ } if (ltoken.size() == 0) return commandExpected(); - return unrecognizedToken(); + return unrecognizedToken(script); } aatokenCompiled = new Token[lltoken.size()][]; lltoken.copyInto(aatokenCompiled); @@ -734,8 +734,8 @@ private boolean invalidExpressionToken(String ident) { return compileError("invalid expression token:" + ident); } - private boolean unrecognizedToken() { - return compileError("unrecognized token"); + private boolean unrecognizedToken(String ident) { + return compileError("unrecognized token" + ident); } private boolean badArgumentCount() { return compileError("bad argument count"); Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -394,6 +394,8 @@ return !interruptExecution.booleanValue(); } + int commandHistoryLevelMax = 0; + void instructionDispatchLoop() throws ScriptException { long timeBegin = 0; logMessages = Logger.isActiveLevel(Logger.LEVEL_DEBUG); @@ -402,7 +404,8 @@ viewer.scriptStatus("Eval.instructionDispatchLoop():" + timeBegin); viewer.scriptStatus(toString()); } - viewer.addCommand(script); + if (scriptLevel <= commandHistoryLevelMax) + viewer.addCommand(script); while (pc < aatoken.length) { if (!checkContinue()) break; @@ -2573,24 +2576,32 @@ //measure() see monitor() void monitor() throws ScriptException { - int[] monitorArgs = new int[5]; + int[] countPlusIndexes = new int[5]; float[] rangeMinMax = new float[2]; - if (statementLength == 1) { + switch (statementLength) { + case 1: viewer.hideMeasurements(false); return; - } - if (statementLength == 2) { + case 2: if (statement[1].tok == Token.on) viewer.hideMeasurements(false); else if (statement[1].tok == Token.off) viewer.hideMeasurements(true); else if (statement[1].tok == Token.delete) - viewer.clearMeasurements(); + viewer.clearAllMeasurements(); else keywordExpected("ON, OFF, or DELETE"); return; + case 3: //measure delete N + if (statement[1].tok == Token.delete) { + if (statement[1].tok == Token.all) + viewer.clearAllMeasurements(); + else + viewer.deleteMeasurement(intParameter(2) - 1); + return; + } } - monitorArgs[0] = 0; + countPlusIndexes[0] = 0; int argCount = statementLength - 1; int expressionCount = 0; int atomIndex = -1; @@ -2675,9 +2686,9 @@ } else { if (atomIndex == -1) badAtomNumber(); - if (++monitorArgs[0] > 4) + if (++countPlusIndexes[0] > 4) badArgumentCount(); - monitorArgs[monitorArgs[0]] = atomIndex; + countPlusIndexes[countPlusIndexes[0]] = atomIndex; } } if (isAll) { @@ -2691,13 +2702,13 @@ viewer.defineMeasurement(monitorExpressions, rangeMinMax, isDelete, isAllConnected, isON || isOFF, isOFF); } else if (isDelete) - viewer.deleteMeasurement(monitorArgs); + viewer.deleteMeasurement(countPlusIndexes); else if (isON) - viewer.showMeasurement(monitorArgs, true); + viewer.showMeasurement(countPlusIndexes, true); else if (isOFF) - viewer.showMeasurement(monitorArgs, false); + viewer.showMeasurement(countPlusIndexes, false); else - viewer.toggleMeasurement(monitorArgs); + viewer.toggleMeasurement(countPlusIndexes); } void refresh() { @@ -2706,7 +2717,7 @@ } void reset() { - viewer.homePosition(); + viewer.reset(); } void restrict() throws ScriptException { @@ -3845,9 +3856,6 @@ case Token.defaultColors: setDefaultColors(); break; - case Token.debugscript: - setDebugScript(); - break; case Token.selectionHalo: case Token.display: //deprecated setSelectionHalo(2); @@ -3924,6 +3932,10 @@ case Token.pickingStyle: setPickingStyle(); break; + case Token.formalCharge: + viewer.setFormalCharges(intParameter(2)); + break; + // not implemented case Token.backfade: case Token.cartoon: @@ -3936,9 +3948,9 @@ case Token.transparent: case Token.vectps: case Token.write: - case Token.formalCharge: - viewer.setFormalCharges(intParameter(2)); - break; + // fall through to identifier + + case Token.debugscript: case Token.identifier: String str = (String) statement[1].value; if (str.equalsIgnoreCase("toggleLabel")) { @@ -3956,6 +3968,10 @@ viewer.setCallbackFunction(str,func); break; } + if (str.equalsIgnoreCase("historyLevel")) { + commandHistoryLevelMax = intParameter(2); + break; + } if (str.equalsIgnoreCase("defaultLattice")) { if (statementLength < 3) badArgumentCount(); @@ -4257,10 +4273,6 @@ viewer.setShapeSize(JmolConstants.SHAPE_MEASURES, getSetAxesTypeMad(cmdPt)); } - void setDebugScript() throws ScriptException { - viewer.setDebugScript(getSetBoolean()); - } - void setProperty() throws ScriptException { checkLength4(); if (statement[2].tok != Token.identifier) Modified: trunk/Jmol/src/org/jmol/viewer/Measurement.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Measurement.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/viewer/Measurement.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -56,6 +56,21 @@ setInfo(frame, atomCountPlusIndices, value); } + /** + * Used by MouseManager and Picking Manager to build the script + * @param countPlusIndexes + * @return measure (atomIndex=1) (atomIndex=2).... + */ + static String getMeasurementScript(int[] countPlusIndexes) { + String str = "measure"; + int nAtoms = countPlusIndexes[0]; + for (int i = 0; i < nAtoms; i++) { + str += " (atomIndex=" + countPlusIndexes[i + 1] + ")"; + } + return str; + } + + void setInfo(Frame frame, int[] atomCountPlusIndices, float value) { if (atomCountPlusIndices == null) count = 0; Modified: trunk/Jmol/src/org/jmol/viewer/MouseManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/MouseManager.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/viewer/MouseManager.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -500,7 +500,7 @@ void toggleMeasurement() { if (measurementCount >= 2 && measurementCount <= 4) { measurementCountPlusIndices[0] = measurementCount; - viewer.toggleMeasurement(measurementCountPlusIndices); + viewer.script(Measurement.getMeasurementScript(measurementCountPlusIndices)); } exitMeasurementMode(); } Modified: trunk/Jmol/src/org/jmol/viewer/PickingManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PickingManager.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/viewer/PickingManager.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -38,8 +38,6 @@ int queuedAtomCount = 0; int[] queuedAtomIndexes = new int[4]; - int[] countPlusIndexes = new int[5]; - PickingManager(Viewer viewer) { this.viewer = viewer; clear(); @@ -170,8 +168,9 @@ } } + int[] countPlusIndices = new int[5]; void toggleMeasurement(int nAtoms) { - countPlusIndexes[0] = nAtoms; + countPlusIndices[0] = nAtoms; int iLast = -1; int iThis; for (int i = 0; i < nAtoms; i++) { @@ -179,9 +178,9 @@ queuedAtomCount = i; return; } - iLast = countPlusIndexes[i + 1] = iThis; + iLast = countPlusIndices[i + 1] = iThis; } - viewer.toggleMeasurement(countPlusIndexes); + viewer.script(Measurement.getMeasurementScript(countPlusIndices)); } void applyMouseStyle(String item, boolean shiftKey, boolean alternateKey) { Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -1194,7 +1194,6 @@ axisangleT.set(matrixRotate); float degrees = axisangleT.angle * degreesPerRadian; StringBuffer sb = new StringBuffer(); - sb.append("#sppa " + scalePixelsPerAngstrom + " rrad " + rotationRadius + "\n"); sb.append("moveto " + timespan); if (degrees < 0.01f) { sb.append(" {0 0 1 0}"); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -239,17 +239,18 @@ return mouseManager.handleOldJvm10Event(e); } - public void homePosition() { + void reset() { //Eval.reset() - //DisplayPanel //initializeModel - //was mouse double-click transformManager.homePosition(); if (modelManager.modelsHaveSymmetry()) styleManager.setCrystallographicDefaults(); - refresh(1, "Viewer:homePosition()"); } + + public void homePosition() { + script("reset"); + } final Hashtable imageCache = new Hashtable(); @@ -391,27 +392,25 @@ } public void rotateFront() { - //app DisplayPanel.FrontAction + //deprecated transformManager.rotateFront(); refresh(1, "Viewer:rotateFront()"); } public void rotateToX(float angleRadians) { - //Viewer.rotateToX(int) - //app DisplayPanel.rotate(); + //deprecated transformManager.rotateToX(angleRadians); refresh(1, "Viewer:rotateToX()"); } public void rotateToY(float angleRadians) { - //Viewer.rotateToY(int) - //app DisplayPanel.rotate(); + //deprecated transformManager.rotateToY(angleRadians); refresh(1, "Viewer:rotateToY()"); } public void rotateToZ(float angleRadians) { - //app DisplayPanel.rotate(); + //deprecated transformManager.rotateToZ(angleRadians); refresh(1, "Viewer:rotateToZ()"); } @@ -419,12 +418,12 @@ final static float radiansPerDegree = (float) (2 * Math.PI / 360); public void rotateToX(int angleDegrees) { - //not in this project + //deprecated rotateToX(angleDegrees * radiansPerDegree); } public void rotateToY(int angleDegrees) { - //not in this project + //deprecated rotateToY(angleDegrees * radiansPerDegree); } @@ -639,7 +638,6 @@ public void setVibrationPeriod(float period) { //Eval - //app AtomSetChooser transformManager.setVibrationPeriod(period); } @@ -758,7 +756,6 @@ public void setVectorScale(float scale) { //Eval - //AtomSetChooser transformManager.setVectorScale(scale); } @@ -878,7 +875,6 @@ } public void selectAll() { - //app DisplayPanel.SelectallAction //initializeModel selectionManager.selectAll(); refresh(0, "Viewer:selectAll()"); @@ -1200,14 +1196,14 @@ modelManager.setClientFile(null, null, null, null); selectionManager.clearSelection(); selectionManager.hide(null); - clearMeasurements(); + clearAllMeasurements(); setStatusFileLoaded(0, null, null, null, null, null); refresh(0, "Viewer:clear()"); System.gc(); } private void initializeModel() { - homePosition(); + reset(); selectAll(); transformManager.setCenter(); if (eval != null) @@ -1492,9 +1488,8 @@ } public void setCenterSelected() { - //DisplayPanel.DefineCenterAction BYPASSES - //==script("center selected") - setCenterBitSet(selectionManager.bsSelection, true); + //depricated + script("center (selected)"); } public void rebond() { @@ -1727,16 +1722,10 @@ } - /***************************************************************************** + /* **************************************************************************** * delegated to MeasurementManager ****************************************************************************/ - public void clearMeasurements() { - //Eval, app MeasurementTable, clear() - setShapeProperty(JmolConstants.SHAPE_MEASURES, "clear", null); - refresh(0, "Viewer:clearMeasurements()"); - } - public int getMeasurementCount() { int count = getShapePropertyAsInt(JmolConstants.SHAPE_MEASURES, "count"); return count <= 0 ? 0 : count; @@ -1767,6 +1756,17 @@ atomCountPlusIndices); } + void clearAllMeasurements() { + //Eval only + setShapeProperty(JmolConstants.SHAPE_MEASURES, "clear", null); + refresh(0, "Viewer:clearAllMeasurements()"); + } + + public void clearMeasurements() { + //depricated but in the API -- use "script" directly + script("measures delete"); + } + void defineMeasurement(Vector monitorExpressions, float[] rangeMinMax, boolean isDelete, boolean isAllConnected, boolean isShowHide, boolean isHidden) { @@ -1781,7 +1781,7 @@ } public void deleteMeasurement(int i) { - //app MeasurementTable + //Eval setShapeProperty(JmolConstants.SHAPE_MEASURES, "delete", new Integer(i)); } @@ -1795,7 +1795,7 @@ //Eval setShapeProperty(JmolConstants.SHAPE_MEASURES, isON ? "show" : "hide", atomCountPlusIndices); - refresh(0, "Viewer:clearMeasurements()"); + refresh(0, "Viewer:showMeasurements()"); } public void hideMeasurements(boolean isOFF) { @@ -1806,11 +1806,11 @@ } void toggleMeasurement(int[] atomCountPlusIndices) { - //Eval, MouseManager, PickingManager + //Eval setShapeProperty(JmolConstants.SHAPE_MEASURES, "toggle", atomCountPlusIndices); } - + // /////////////////////////////////////////////////////////////// // delegated to RepaintManager // /////////////////////////////////////////////////////////////// @@ -3012,7 +3012,6 @@ public void setPerspectiveDepth(boolean perspectiveDepth) { //setBooleanProperty //StyleManager.setCrystallographicDefaults - //app DisplayPanel //app preferences dialog transformManager.setPerspectiveDepth(perspectiveDepth); refresh(0, "Viewer:setPerspectiveDepth()"); @@ -3060,8 +3059,13 @@ return transformManager.getPerspectiveDepth(); } - public void setSelectionHaloEnabled(boolean selectionHaloEnabled) { + public void setSelectionHalos(boolean TF) { //app DisplayPanel + if (getSelectionHaloEnabled() != TF) + script("selectionHalos "+ TF); + } + + void setSelectionHaloEnabled(boolean selectionHaloEnabled) { //Eval //setBooleanProperty loadShape(JmolConstants.SHAPE_HALOS); @@ -3234,8 +3238,7 @@ } public void setShowHydrogens(boolean TF) { - //DisplayPanel.HydrogensAction - //PreferncesDialog + //PreferencesDialog //setBooleanProperty global.showHydrogens = TF; refresh(0, "Viewer:setShowHydrogens()"); @@ -3256,7 +3259,6 @@ } public void setShowBbcage(boolean showBbcage) { - //DisplayPanel //PreferencesDialog setShapeShow(JmolConstants.SHAPE_BBCAGE, showBbcage); } @@ -3266,7 +3268,6 @@ } public void setShowAxes(boolean showAxes) { - //DisplayPanel //PreferencesDialog setShapeShow(JmolConstants.SHAPE_AXES, showAxes); } @@ -3276,7 +3277,6 @@ } public void setShowMeasurements(boolean TF) { - //DisplayPanel //PreferencesDialog //setbooleanProperty global.showMeasurements = TF; Modified: trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/openscience/jmol/app/AtomSetChooser.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -301,7 +301,7 @@ scaleSlider = new JSlider(0, (int)(SCALE_MAX/SCALE_PRECISION), (int) (SCALE_VALUE/SCALE_PRECISION)); scaleSlider.addChangeListener(this); - viewer.setVectorScale(SCALE_VALUE); + viewer.evalStringQuiet("vector scale " + SCALE_VALUE); scalePanel.add(scaleSlider); row1.add(scalePanel); vectorPanel.add(row1); @@ -314,7 +314,7 @@ amplitudePanel.setBorder(new TitledBorder(GT._("Amplitude"))); amplitudeSlider = new JSlider(0, (int) (AMPLITUDE_MAX/AMPLITUDE_PRECISION), (int)(AMPLITUDE_VALUE/AMPLITUDE_PRECISION)); - viewer.setVibrationScale(AMPLITUDE_VALUE); + viewer.evalStringQuiet("vibration scale " + AMPLITUDE_VALUE); amplitudeSlider.addChangeListener(this); amplitudePanel.add(amplitudeSlider); row2.add(amplitudePanel); @@ -325,7 +325,7 @@ periodSlider = new JSlider(0, (int)(PERIOD_MAX/PERIOD_PRECISION), (int)(PERIOD_VALUE/PERIOD_PRECISION)); - viewer.setVibrationPeriod(PERIOD_VALUE); + viewer.evalStringQuiet("vibration " + PERIOD_VALUE); periodSlider.addChangeListener(this); periodPanel.add(periodSlider); row2.add(periodPanel); @@ -419,7 +419,6 @@ try { currentIndex = index; int atomSetIndex = indexes[index]; - // viewer.setDisplayModelIndex(atomSetIndex); // does not update viewer.evalStringQuiet("frame " + viewer.getModelNumber(atomSetIndex)); infoLabel.setText(viewer.getModelName(atomSetIndex)); showProperties(viewer.getModelProperties(atomSetIndex)); @@ -521,7 +520,8 @@ int modelIndex = indexes[idx]; StringBuffer str = new StringBuffer(viewer.getModelName(modelIndex)+"\n"); int natoms=0; - for (int i = 0; i < viewer.getAtomCount(); i++) { + int atomCount = viewer.getAtomCount(); + for (int i = 0; i < atomCount; i++) { if (viewer.getAtomModelIndex(i)==modelIndex) { natoms++; Point3f p = viewer.getAtomPoint3f(i); @@ -564,27 +564,28 @@ public void stateChanged(ChangeEvent e) { Object src = e.getSource(); - int value = ((JSlider)src).getValue(); + int value = ((JSlider) src).getValue(); if (src == selectSlider) { showAtomSetIndex(value, false); } else if (src == fpsSlider) { if (value == 0) - fpsSlider.setValue(1); // make sure I never set it to 0... + fpsSlider.setValue(1); // make sure I never set it to 0... else - viewer.setAnimationFps(value); - } else if (src == radiusSlider) { + viewer.evalStringQuiet("animation fps " + value); + } else if (src == radiusSlider) { if (value == 0) radiusSlider.setValue(1); // make sure I never set it to 0.. else viewer.evalStringQuiet("vector " + value); } else if (src == scaleSlider) { - viewer.evalStringQuiet("vector scale "+value*SCALE_PRECISION); + viewer.evalStringQuiet("vector scale " + (value * SCALE_PRECISION)); } else if (src == amplitudeSlider) { - viewer.setVibrationScale(value*AMPLITUDE_PRECISION); + viewer + .evalStringQuiet("vibration scale " + (value * AMPLITUDE_PRECISION)); } else if (src == periodSlider) { - viewer.setVibrationPeriod(value*PERIOD_PRECISION); + viewer.evalStringQuiet("vibration " + (value * PERIOD_PRECISION)); } - } + } /** * Shows the properties in the propertiesPane of the Modified: trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -74,7 +74,7 @@ void setRotateMode() { Jmol.setRotateButton(); - viewer.setSelectionHaloEnabled(false); + viewer.setSelectionHalos(false); } public void componentHidden(java.awt.event.ComponentEvent e) { @@ -158,6 +158,13 @@ private AxesAction axesAction = new AxesAction(); private BoundboxAction boundboxAction = new BoundboxAction(); + void moveTo(String move) { + if (viewer.getShowBbcage() || viewer.getBooleanProperty("showUnitCell")) + viewer.script(move); + else + viewer.script("boundbox on;" + move +";delay 1;boundbox off"); + } + class HydrogensAction extends AbstractAction { public HydrogensAction() { @@ -167,7 +174,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.setShowHydrogens(cbmi.isSelected()); + viewer.script("set showHydrogens " + cbmi.isSelected()); } } @@ -180,7 +187,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.setShowMeasurements(cbmi.isSelected()); + viewer.script ("set showMeasurements " +cbmi.isSelected()); } } @@ -192,10 +199,7 @@ } public void actionPerformed(ActionEvent e) { - - if (viewer.haveFrame()) { - viewer.script("select all"); - } + viewer.script("select all"); } } @@ -207,10 +211,7 @@ } public void actionPerformed(ActionEvent e) { - - if (viewer.haveFrame()) { - viewer.script("select none"); - } + viewer.script("select none"); } } @@ -222,7 +223,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.setSelectionHaloEnabled(true); + viewer.setSelectionHalos(false); status.setStatus(1, GT._("Select Atoms")); } } @@ -235,7 +236,8 @@ } public void actionPerformed(ActionEvent e) { - viewer.setSelectionHaloEnabled(false); + //not implemented (I hope) + viewer.setSelectionHalos(false); status.setStatus(1, GT._("Delete Atoms")); } } @@ -248,7 +250,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.setSelectionHaloEnabled(false); + viewer.setSelectionHalos(false); status.setStatus(1, ((JComponent) e.getSource()).getToolTipText()); } } @@ -261,7 +263,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.setSelectionHaloEnabled(false); + viewer.setSelectionHalos(false); status.setStatus(1, ((JComponent) e.getSource()).getToolTipText()); } } @@ -274,7 +276,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.setSelectionHaloEnabled(false); + viewer.setSelectionHalos(false); status.setStatus(1, ((JComponent) e.getSource()).getToolTipText()); } } @@ -287,7 +289,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("boundbox on;moveto 2.0 front;delay 1;boundbox off"); + moveTo("moveto 2.0 front"); } } @@ -299,7 +301,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 top;delay 1;boundbox off"); + moveTo("moveto 1.0 front;moveto 2.0 top"); } } @@ -311,7 +313,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 bottom;delay 1;boundbox off"); + moveTo("moveto 1.0 front;moveto 2.0 bottom"); } } @@ -323,7 +325,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 right;delay 1;boundbox off"); + moveTo("moveto 1.0 front;moveto 2.0 right"); } } @@ -335,7 +337,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("boundbox on;moveto 1.0 front;moveto 2.0 left;delay 1;boundbox off"); + moveTo("moveto 1.0 front;moveto 2.0 left"); } } @@ -347,9 +349,9 @@ } public void actionPerformed(ActionEvent e) { - viewer.setCenterSelected(); + viewer.script("center (selected)"); setRotateMode(); - viewer.setSelectionHaloEnabled(false); + viewer.setSelectionHalos(false); } } @@ -375,7 +377,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.setPerspectiveDepth(cbmi.isSelected()); + viewer.script("set PerspectiveDepth " +cbmi.isSelected()); } } @@ -388,7 +390,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.setShowAxes(cbmi.isSelected()); + viewer.script("set showAxes " + cbmi.isSelected()); } } @@ -401,7 +403,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.setShowBbcage(cbmi.isSelected()); + viewer.script("set showBoundBox " + cbmi.isSelected()); } } @@ -503,20 +505,6 @@ status.setStatus(3, fmt(timeLast) + "ms : " + fmt(timeAverage) + "ms"); } } - - public final static int X_AXIS = 1; - public final static int Y_AXIS = 2; - public final static int Z_AXIS = 3; - - public void rotate(int axis, double angle) { - if (axis == X_AXIS) { - viewer.rotateToX((float)Math.toRadians(angle)); - } else if (axis == Y_AXIS) { - viewer.rotateToY((float)Math.toRadians(angle)); - } else if (axis == Z_AXIS) { - viewer.rotateToZ((float)Math.toRadians(angle)); - } - } } Modified: trunk/Jmol/src/org/openscience/jmol/app/MeasurementTable.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/MeasurementTable.java 2006-10-17 11:18:59 UTC (rev 5971) +++ trunk/Jmol/src/org/openscience/jmol/app/MeasurementTable.java 2006-10-17 14:35:34 UTC (rev 5972) @@ -124,7 +124,7 @@ deleteButton = new JButton(GT._("Delete")); deleteButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - viewer.deleteMeasurement(selectedMeasurementRow); + viewer.script("measures delete " + (selectedMeasurementRow + 1)); updateMeasurementTableData(); } }); @@ -133,7 +133,7 @@ deleteAllButton = new JButton(GT._("DeleteAll")); deleteAllButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - viewer.clearMeasurements(); + viewer.script("measures delete"); updateMeasurementTableData(); } }); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-17 16:02:58
|
Revision: 5973 http://svn.sourceforge.net/jmol/?rev=5973&view=rev Author: hansonr Date: 2006-10-17 09:02:43 -0700 (Tue, 17 Oct 2006) Log Message: ----------- better popup views for front/left/right/etc. and, ah, if()...;else;...;endif Don't take these too seriously yet -- they are quite limited! the only allowed operator is NOT Modified Paths: -------------- trunk/Jmol/src/org/jmol/popup/JmolPopup.java trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java trunk/Jmol/src/org/jmol/viewer/Compiler.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Token.java trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java Modified: trunk/Jmol/src/org/jmol/popup/JmolPopup.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-17 14:35:34 UTC (rev 5972) +++ trunk/Jmol/src/org/jmol/popup/JmolPopup.java 2006-10-17 16:02:43 UTC (rev 5973) @@ -642,9 +642,9 @@ } } if (what.indexOf("#") > 0) - viewer.script(what); + viewer.evalStringQuiet(what); else if (viewer.getBooleanProperty(basename) != TF) - viewer.script("set " + basename + (TF ? " TRUE" : " FALSE" + extension)); + viewer.evalStringQuiet("set " + basename + (TF ? " TRUE" : " FALSE" + extension)); if (what.indexOf("#CONFIG") >= 0) { configurationSelected = what; this.updateModelSetComputedMenu(); @@ -664,7 +664,7 @@ script = fixScript(id, script); currentMenuItemId = id; } - viewer.script(script); + viewer.evalStringQuiet(script); } } Modified: trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-17 14:35:34 UTC (rev 5972) +++ trunk/Jmol/src/org/jmol/popup/PopupResourceBundle.java 2006-10-17 16:02:43 UTC (rev 5973) @@ -29,6 +29,7 @@ class PopupResourceBundle { + PopupResourceBundle() { // Nothing } @@ -59,6 +60,10 @@ final static String TRANSLUCENCY = "opaque translucent"; final static String AXESCOLOR = "gray salmon maroon olive slateblue gold orchid"; + + static String Box(String cmd) { + return "if not(showBoundBox);if not(showUnitcell);boundbox on;"+cmd+";boundbox off;else;"+cmd+";endif;endif;"; + } private static final String[][] structureContents = { { "popupMenu", @@ -130,12 +135,12 @@ { "PDBnoneOfTheAbove", "not(hetero,protein,nucleic,carbohydrate)" }, { "viewMenu","front left right top bottom back" }, - { "front", "boundbox on;moveto 2.0 front;delay 1;boundbox off" }, - { "left", "boundbox on;moveto 1.0 front;moveto 2.0 left;delay 1;boundbox off" }, - { "right", "boundbox on;moveto 1.0 front;moveto 2.0 right;delay 1;boundbox off" }, - { "top", "boundbox on;moveto 1.0 front;moveto 2.0 top;delay 1;boundbox off" }, - { "bottom", "boundbox on;moveto 1.0 front;moveto 2.0 bottom;delay 1;boundbox off" }, - { "back", "boundbox on;moveto 1.0 front;moveto 2.0 back;delay 1;boundbox off" }, + { "front", Box( "moveto 2.0 front;delay 1" ) }, + { "left", Box( "moveto 1.0 front;moveto 2.0 left;delay 1" ) }, + { "right", Box( "moveto 1.0 front;moveto 2.0 right;delay 1" ) }, + { "top", Box( "moveto 1.0 front;moveto 2.0 top;delay 1" ) }, + { "bottom", Box( "moveto 1.0 front;moveto 2.0 bottom;delay 1" ) }, + { "back", Box( "moveto 1.0 front;moveto 2.0 back;delay 1" ) }, { "renderMenu", "perspectiveDepthCheckbox showBoundBoxCheckbox showUnitCellCheckbox showAxes;set_axesMolecularCheckbox stereoMenu - renderSchemeMenu - atomMenu labelMenu bondMenu hbondMenu ssbondMenu - " Modified: trunk/Jmol/src/org/jmol/viewer/Compiler.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-10-17 14:35:34 UTC (rev 5972) +++ trunk/Jmol/src/org/jmol/viewer/Compiler.java 2006-10-17 16:02:43 UTC (rev 5973) @@ -324,57 +324,7 @@ ltoken.addElement(new Token(Token.data, str)); cchToken = i - ichToken + 6 + key.length(); } - /* - mth - 2003 01 05 - initial implementation used java.util.regex.* - second round used hand-rolled tokenizing to support old browser jvms - the grammar of rasmol scripts is a little messed-up, so this structure - was the easiest thing for me to come up with that worked - - final static Pattern patternLeadingWhiteSpace = - Pattern.compile("[\\s&&[^\\r\\n]]+"); - final static Pattern patternComment = - Pattern.compile("#[^\\r\\n]*"); - final static Pattern patternEndOfStatement = - Pattern.compile(";"); - final static Pattern patternEndOfLine = - Pattern.compile("\\r?\\n|\\r|$", Pattern.MULTILINE); - final static Pattern patternDecimal = - Pattern.compile("-?\\d+\\.(\\d*)?|-?\\.\\d+"); - final static Pattern patternPositiveInteger = - Pattern.compile("\\d+"); - final static Pattern patternNegativeInteger = - Pattern.compile("-\\d+"); - final static Pattern patternString = - Pattern.compile("([\"'`])(.*?)\\1"); - final static Pattern patternSpecialString = - Pattern.compile("[^\\r\\n]+"); - final static Pattern patternLookup = - Pattern.compile("\\(|\\)|," + - "|<=|<|>=|>|==|=|!=|<>|/=" + - "|&|\\||!" + - "|\\*" + // select * - "|-" + // range - "|\\[|\\]" + // color [##,##,##] - "|\\+" + // bond - "|\\?" + // help command - "|[a-zA-Z_][a-zA-Z_0-9]*" - ); - - boolean lookingAt(Pattern pattern, String description) { - Matcher m = pattern.matcher(script.subSequence(ichToken, cchScript)); - boolean lookingAt = m.lookingAt(); - if (lookingAt) { - strToken = m.group(); - cchToken = m.end(); - } else { - cchToken = 0; - } - return lookingAt; - } - */ - private final static boolean isSpaceOrTab(char ch) { return ch == ' ' || ch == '\t'; } Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-17 14:35:34 UTC (rev 5972) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2006-10-17 16:02:43 UTC (rev 5973) @@ -396,8 +396,13 @@ int commandHistoryLevelMax = 0; + final static int MAX_IF_DEPTH = 10; //should be plenty + boolean[] ifs = new boolean[MAX_IF_DEPTH + 1]; + void instructionDispatchLoop() throws ScriptException { long timeBegin = 0; + int ifLevel = 0; + ifs[0] = true; logMessages = Logger.isActiveLevel(Logger.LEVEL_DEBUG); if (logMessages) { timeBegin = System.currentTimeMillis(); @@ -417,7 +422,23 @@ if (logMessages) logDebugScript(); Logger.debug(token.toString()); + if (ifLevel > 0 && !ifs[ifLevel] && token.tok != Token.endifcmd && token.tok != Token.ifcmd && token.tok != Token.elsecmd) + continue; switch (token.tok) { + case Token.ifcmd: + if (++ifLevel == MAX_IF_DEPTH) + evalError (GT._("Too many nested {0} commands", "IF")); + ifs[ifLevel] = (ifs[ifLevel - 1] && ifCmd()); + break; + case Token.elsecmd: + if (ifLevel < 1) + evalError (GT._("Invalid {0} command", "ELSE")); + ifs[ifLevel] = !ifs[ifLevel]; + break; + case Token.endifcmd: + if (--ifLevel < 0) + evalError (GT._("Invalid {0} command", "ENDIF")); + break; case Token.backbone: proteinShape(JmolConstants.SHAPE_BACKBONE); break; @@ -689,6 +710,25 @@ } } + boolean ifCmd() throws ScriptException { + if (statementLength < 1) + badArgumentCount(); + boolean value = false; + boolean isNot = false; + int i = 1; + if (statement[i].tok == Token.opNot) { + i++; + isNot = true; + } + if (i < statementLength && statement[i].tok == Token.leftparen) + i++; + if (i == statementLength) + badArgumentCount(); + String str = (String) statement[i].value; + value = viewer.getBooleanProperty(str); + return (isNot ? !value : value); + } + int getLinenumber() { return linenumbers[pc]; } Modified: trunk/Jmol/src/org/jmol/viewer/Token.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-17 14:35:34 UTC (rev 5972) +++ trunk/Jmol/src/org/jmol/viewer/Token.java 2006-10-17 16:02:43 UTC (rev 5973) @@ -190,7 +190,10 @@ final static int restore = command | 104; final static int selectionHalo = command | 105 | setparam; final static int history = command | 106 | setparam | showparam; - final static int display = command | 107 | setparam | expressionCommand; + final static int display = command | 107 | setparam | expressionCommand; + final static int ifcmd = command | 108; + final static int elsecmd = command | 109; + final static int endifcmd = command | 110; // parameters final static int ambient = setparam | 0; @@ -575,6 +578,9 @@ "lcaocartoon", new Token(lcaocartoon,varArgCount, "lcaocartoon"), "lcaocartoons", null, "message", new Token(message, varArgCount, "message"), + "if", new Token(ifcmd, varArgCount, "if"), + "else", new Token(elsecmd, 0, "else"), + "endif", new Token(endifcmd, 0, "endif"), "translateselected", new Token(translateSelected,varArgCount, "translateSelected"), "calculate", new Token(calculate,varArgCount, "calculate"), "selectionhalo", new Token(selectionHalo, onDefault1, "selectionHalos"), Modified: trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-17 14:35:34 UTC (rev 5972) +++ trunk/Jmol/src/org/openscience/jmol/app/DisplayPanel.java 2006-10-17 16:02:43 UTC (rev 5973) @@ -160,9 +160,9 @@ void moveTo(String move) { if (viewer.getShowBbcage() || viewer.getBooleanProperty("showUnitCell")) - viewer.script(move); + viewer.evalStringQuiet(move); else - viewer.script("boundbox on;" + move +";delay 1;boundbox off"); + viewer.evalStringQuiet("boundbox on;" + move +";delay 1;boundbox off"); } class HydrogensAction extends AbstractAction { @@ -174,7 +174,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.script("set showHydrogens " + cbmi.isSelected()); + viewer.evalStringQuiet("set showHydrogens " + cbmi.isSelected()); } } @@ -187,7 +187,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.script ("set showMeasurements " +cbmi.isSelected()); + viewer.evalStringQuiet ("set showMeasurements " +cbmi.isSelected()); } } @@ -199,7 +199,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("select all"); + viewer.evalStringQuiet("select all"); } } @@ -211,7 +211,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("select none"); + viewer.evalStringQuiet("select none"); } } @@ -349,7 +349,7 @@ } public void actionPerformed(ActionEvent e) { - viewer.script("center (selected)"); + viewer.evalStringQuiet("center (selected)"); setRotateMode(); viewer.setSelectionHalos(false); } @@ -377,7 +377,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.script("set PerspectiveDepth " +cbmi.isSelected()); + viewer.evalStringQuiet("set PerspectiveDepth " +cbmi.isSelected()); } } @@ -390,7 +390,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.script("set showAxes " + cbmi.isSelected()); + viewer.evalStringQuiet("set showAxes " + cbmi.isSelected()); } } @@ -403,7 +403,7 @@ public void actionPerformed(ActionEvent e) { JCheckBoxMenuItem cbmi = (JCheckBoxMenuItem) e.getSource(); - viewer.script("set showBoundBox " + cbmi.isSelected()); + viewer.evalStringQuiet("set showBoundBox " + cbmi.isSelected()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |