Révision 936
| tmp/org.txm.edition.rcp/OSGI-INF/l10n/bundle.properties (revision 936) | ||
|---|---|---|
| 1 |
command.label = Edition |
|
| 2 |
command.tooltip = Read corpus texts |
|
| 3 |
command.tooltip.0 = Read corpus texts |
|
| 4 |
command.name = Edition |
|
| 5 |
command.name.0 = Display in full text |
|
| 6 |
editor.name = Edition |
|
| 7 |
Bundle-Name = SynopticEditor |
|
| 8 |
menu.label.1 = Corpus |
|
| 0 | 9 | |
| tmp/org.txm.edition.rcp/OSGI-INF/l10n/bundle_fr.properties (revision 936) | ||
|---|---|---|
| 1 |
|
|
| 2 |
Bundle-Name = SynopticEditor |
|
| 3 |
|
|
| 4 |
command.label = \u00C9dition |
|
| 5 |
|
|
| 6 |
command.name = \u00C9dition |
|
| 7 |
|
|
| 8 |
command.name.0 = Lire en plein texte |
|
| 9 |
|
|
| 10 |
command.tooltip = Lire l'\u00E9dition |
|
| 11 |
|
|
| 12 |
command.tooltip.0 = Lire l'\u00E9dition |
|
| 13 |
|
|
| 14 |
editor.name = \u00C9dition |
|
| 15 |
|
|
| 16 |
menu.label.1 = Corpus |
|
| 0 | 17 | |
| tmp/org.txm.edition.rcp/plugin.xml (revision 936) | ||
|---|---|---|
| 1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
| 2 |
<?eclipse version="3.4"?> |
|
| 3 |
<plugin> |
|
| 4 |
<extension |
|
| 5 |
point="org.eclipse.ui.menus"> |
|
| 6 |
<menuContribution |
|
| 7 |
locationURI="menu:menu.help.plugins"> |
|
| 8 |
<command |
|
| 9 |
commandId="org.txm.rcp.commands.OpenBrowser" |
|
| 10 |
icon="icons/objects/edition.png" |
|
| 11 |
label="%command.label" |
|
| 12 |
style="push"> |
|
| 13 |
<parameter |
|
| 14 |
name="org.txm.rcp.commands.commandParameter2" |
|
| 15 |
value="https://groupes.renater.fr/wiki/txm-users/public/extensions#synoptic_editor"> |
|
| 16 |
</parameter> |
|
| 17 |
</command> |
|
| 18 |
</menuContribution> |
|
| 19 |
<menuContribution |
|
| 20 |
allPopups="true" |
|
| 21 |
locationURI="toolbar:org.txm.rcp.toolbarcorpus?after=org.txm.rcp.toolbarcorpus.read"> |
|
| 22 |
<command |
|
| 23 |
commandId="org.txm.edition.rcp.handlers.OpenEdition" |
|
| 24 |
icon="icons/objects/edition.png" |
|
| 25 |
style="push" |
|
| 26 |
tooltip="%command.tooltip.0"> |
|
| 27 |
<visibleWhen |
|
| 28 |
checkEnabled="false"> |
|
| 29 |
<or> |
|
| 30 |
<reference |
|
| 31 |
definitionId="OneCorpusSelected"> |
|
| 32 |
</reference> |
|
| 33 |
</or> |
|
| 34 |
</visibleWhen> |
|
| 35 |
</command> |
|
| 36 |
</menuContribution> |
|
| 37 |
<menuContribution |
|
| 38 |
locationURI="popup:org.txm.rcp.views.corpora.CorporaView?after=org.txm.rcp.corporaview.corpus.read"> |
|
| 39 |
<command |
|
| 40 |
commandId="org.txm.edition.rcp.handlers.OpenEdition" |
|
| 41 |
icon="icons/objects/edition.png" |
|
| 42 |
style="push" |
|
| 43 |
tooltip="%command.tooltip.0"> |
|
| 44 |
<visibleWhen |
|
| 45 |
checkEnabled="false"> |
|
| 46 |
<or> |
|
| 47 |
<reference |
|
| 48 |
definitionId="OneCorpusSelected"> |
|
| 49 |
</reference> |
|
| 50 |
</or> |
|
| 51 |
</visibleWhen> |
|
| 52 |
</command> |
|
| 53 |
</menuContribution> |
|
| 54 |
<menuContribution |
|
| 55 |
locationURI="menu:menu.corpus?after=menu.corpus.read"> |
|
| 56 |
<command |
|
| 57 |
commandId="org.txm.edition.rcp.handlers.OpenEdition" |
|
| 58 |
icon="icons/objects/edition.png" |
|
| 59 |
style="push" |
|
| 60 |
tooltip="%command.tooltip.0"> |
|
| 61 |
<visibleWhen |
|
| 62 |
checkEnabled="false"> |
|
| 63 |
<or> |
|
| 64 |
<reference |
|
| 65 |
definitionId="OneCorpusSelected"> |
|
| 66 |
</reference> |
|
| 67 |
</or> |
|
| 68 |
</visibleWhen> |
|
| 69 |
</command> |
|
| 70 |
</menuContribution> |
|
| 71 |
<menuContribution |
|
| 72 |
locationURI="popup:org.txm.concordance.rcp.editors.ConcordanceEditor"> |
|
| 73 |
<command |
|
| 74 |
commandId="org.txm.edition.rcp.handlers.BackToText" |
|
| 75 |
icon="icons/objects/edition.png" |
|
| 76 |
style="push"> |
|
| 77 |
</command> |
|
| 78 |
</menuContribution> |
|
| 79 |
</extension> |
|
| 80 |
<extension |
|
| 81 |
point="org.eclipse.ui.commands"> |
|
| 82 |
<command |
|
| 83 |
defaultHandler="org.txm.edition.rcp.handlers.OpenEdition" |
|
| 84 |
id="org.txm.edition.rcp.handlers.OpenEdition" |
|
| 85 |
name="%command.name"> |
|
| 86 |
</command> |
|
| 87 |
<command |
|
| 88 |
defaultHandler="org.txm.edition.rcp.handlers.BackToText" |
|
| 89 |
id="org.txm.edition.rcp.handlers.BackToText" |
|
| 90 |
name="%command.name.0"> |
|
| 91 |
<commandParameter |
|
| 92 |
id="org.txm.edition.rcp.handlers.BackToText.wordid" |
|
| 93 |
name="wordid" |
|
| 94 |
optional="true"> |
|
| 95 |
</commandParameter> |
|
| 96 |
<commandParameter |
|
| 97 |
id="org.txm.edition.rcp.handlers.BackToText.textid" |
|
| 98 |
name="textid" |
|
| 99 |
optional="true"> |
|
| 100 |
</commandParameter> |
|
| 101 |
<commandParameter |
|
| 102 |
id="org.txm.edition.rcp.handlers.BackToText.corpusid" |
|
| 103 |
name="corpusid" |
|
| 104 |
optional="true"> |
|
| 105 |
</commandParameter> |
|
| 106 |
<commandParameter |
|
| 107 |
id="org.txm.edition.rcp.handlers.BackToText.editionid" |
|
| 108 |
name="editionid" |
|
| 109 |
optional="true"> |
|
| 110 |
</commandParameter> |
|
| 111 |
</command> |
|
| 112 |
</extension> |
|
| 113 |
<extension |
|
| 114 |
point="org.eclipse.ui.editors"> |
|
| 115 |
<editor |
|
| 116 |
class="org.txm.edition.rcp.editors.SynopticEditionEditor" |
|
| 117 |
default="false" |
|
| 118 |
icon="icons/objects/edition.png" |
|
| 119 |
id="org.txm.edition.rcp.editors.SynopticEditionEditor" |
|
| 120 |
name="%editor.name"> |
|
| 121 |
</editor> |
|
| 122 |
</extension> |
|
| 123 |
<extension |
|
| 124 |
point="org.eclipse.ui.bindings"> |
|
| 125 |
<key |
|
| 126 |
commandId="org.txm.edition.rcp.handlers.BackToText" |
|
| 127 |
contextId="org.eclipse.ui.contexts.window" |
|
| 128 |
schemeId="org.txm.rcp.scheme" |
|
| 129 |
sequence="M1+E"> |
|
| 130 |
</key> |
|
| 131 |
</extension> |
|
| 132 |
<extension |
|
| 133 |
point="org.txm.rcp.extensionpoint.backtotext"> |
|
| 134 |
<command |
|
| 135 |
class="org.txm.edition.rcp.handlers.BackToText" |
|
| 136 |
name="Synoptic"> |
|
| 137 |
</command> |
|
| 138 |
</extension> |
|
| 139 |
<extension |
|
| 140 |
point="org.eclipse.ui.preferencePages"> |
|
| 141 |
<page |
|
| 142 |
category="org.txm.rcp.preferences.UserPreferencePage" |
|
| 143 |
class="org.txm.edition.rcp.preferences.SynopticEditionPreferencePage" |
|
| 144 |
id="org.txm.edition.rcp.preferences.SynopticEditionPreferencePage" |
|
| 145 |
name="Edition"> |
|
| 146 |
</page> |
|
| 147 |
</extension> |
|
| 148 |
<extension |
|
| 149 |
point="org.eclipse.ui.handlers"> |
|
| 150 |
<handler |
|
| 151 |
class="org.txm.edition.rcp.handlers.SendEditionTo" |
|
| 152 |
commandId="org.txm.concordance.rcp.commands.SendToConcordance"> |
|
| 153 |
<activeWhen> |
|
| 154 |
<reference |
|
| 155 |
definitionId="EditionEditorActive"> |
|
| 156 |
</reference> |
|
| 157 |
</activeWhen> |
|
| 158 |
</handler> |
|
| 159 |
</extension> |
|
| 160 |
<extension |
|
| 161 |
point="org.eclipse.core.expressions.definitions"> |
|
| 162 |
<definition |
|
| 163 |
id="EditionEditorActive"> |
|
| 164 |
<with |
|
| 165 |
variable="activePart"> |
|
| 166 |
<instanceof |
|
| 167 |
value="org.txm.edition.rcp.editors.SynopticEditionEditor"> |
|
| 168 |
</instanceof> |
|
| 169 |
</with> |
|
| 170 |
</definition> |
|
| 171 |
</extension> |
|
| 172 |
|
|
| 173 |
</plugin> |
|
| 0 | 174 | |
| tmp/org.txm.edition.rcp/.settings/org.eclipse.jdt.core.prefs (revision 936) | ||
|---|---|---|
| 1 |
eclipse.preferences.version=1 |
|
| 2 |
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled |
|
| 3 |
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 |
|
| 4 |
org.eclipse.jdt.core.compiler.compliance=1.6 |
|
| 5 |
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error |
|
| 6 |
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error |
|
| 7 |
org.eclipse.jdt.core.compiler.source=1.6 |
|
| 0 | 8 | |
| tmp/org.txm.edition.rcp/.classpath (revision 936) | ||
|---|---|---|
| 1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
| 2 |
<classpath> |
|
| 3 |
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> |
|
| 4 |
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"> |
|
| 5 |
<accessrules> |
|
| 6 |
<accessrule kind="accessible" pattern="**"/> |
|
| 7 |
</accessrules> |
|
| 8 |
</classpathentry> |
|
| 9 |
<classpathentry kind="src" path="src"/> |
|
| 10 |
<classpathentry kind="src" path="res"/> |
|
| 11 |
<classpathentry kind="output" path="bin"/> |
|
| 12 |
</classpath> |
|
| 0 | 13 | |
| tmp/org.txm.edition.rcp/META-INF/MANIFEST.MF (revision 936) | ||
|---|---|---|
| 1 |
Manifest-Version: 1.0 |
|
| 2 |
Require-Bundle: org.txm.concordance.rcp;bundle-version="1.0.0";visibility:=reexport, |
|
| 3 |
org.txm.links.rcp;bundle-version="1.0.0";visibility:=reexport |
|
| 4 |
Export-Package: org.txm.edition.rcp.editors, |
|
| 5 |
org.txm.edition.rcp.handlers, |
|
| 6 |
org.txm.edition.rcp.messages, |
|
| 7 |
org.txm.edition.rcp.preferences |
|
| 8 |
Bundle-Vendor: Textometrie.org |
|
| 9 |
Bundle-ActivationPolicy: lazy |
|
| 10 |
Bundle-Version: 1.0.0.qualifier |
|
| 11 |
Bundle-Name: org.txm.edition.rcp |
|
| 12 |
Bundle-ManifestVersion: 2 |
|
| 13 |
Bundle-SymbolicName: org.txm.edition.rcp;singleton:=true |
|
| 14 |
Bundle-RequiredExecutionEnvironment: JavaSE-1.7 |
|
| 15 |
|
|
| 0 | 16 | |
| tmp/org.txm.edition.rcp/.project (revision 936) | ||
|---|---|---|
| 1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
| 2 |
<projectDescription> |
|
| 3 |
<name>org.txm.edition.rcp</name> |
|
| 4 |
<comment></comment> |
|
| 5 |
<projects> |
|
| 6 |
</projects> |
|
| 7 |
<buildSpec> |
|
| 8 |
<buildCommand> |
|
| 9 |
<name>org.eclipse.jdt.core.javabuilder</name> |
|
| 10 |
<arguments> |
|
| 11 |
</arguments> |
|
| 12 |
</buildCommand> |
|
| 13 |
<buildCommand> |
|
| 14 |
<name>org.eclipse.pde.ManifestBuilder</name> |
|
| 15 |
<arguments> |
|
| 16 |
</arguments> |
|
| 17 |
</buildCommand> |
|
| 18 |
<buildCommand> |
|
| 19 |
<name>org.eclipse.pde.SchemaBuilder</name> |
|
| 20 |
<arguments> |
|
| 21 |
</arguments> |
|
| 22 |
</buildCommand> |
|
| 23 |
</buildSpec> |
|
| 24 |
<natures> |
|
| 25 |
<nature>org.eclipse.pde.PluginNature</nature> |
|
| 26 |
<nature>org.eclipse.jdt.core.javanature</nature> |
|
| 27 |
</natures> |
|
| 28 |
</projectDescription> |
|
| 0 | 29 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/OpenEdition.java (revision 936) | ||
|---|---|---|
| 1 |
// Copyright © 2010-2013 ENS de Lyon. |
|
| 2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
| 3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
| 4 |
// Sophia Antipolis, University of Paris 3. |
|
| 5 |
// |
|
| 6 |
// The TXM platform is free software: you can redistribute it |
|
| 7 |
// and/or modify it under the terms of the GNU General Public |
|
| 8 |
// License as published by the Free Software Foundation, |
|
| 9 |
// either version 2 of the License, or (at your option) any |
|
| 10 |
// later version. |
|
| 11 |
// |
|
| 12 |
// The TXM platform is distributed in the hope that it will be |
|
| 13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
| 14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
| 15 |
// PURPOSE. See the GNU General Public License for more |
|
| 16 |
// details. |
|
| 17 |
// |
|
| 18 |
// You should have received a copy of the GNU General |
|
| 19 |
// Public License along with the TXM platform. If not, see |
|
| 20 |
// http://www.gnu.org/licenses. |
|
| 21 |
// |
|
| 22 |
// |
|
| 23 |
// |
|
| 24 |
// $LastChangedDate:$ |
|
| 25 |
// $LastChangedRevision:$ |
|
| 26 |
// $LastChangedBy:$ |
|
| 27 |
// |
|
| 28 |
package org.txm.edition.rcp.handlers; |
|
| 29 |
|
|
| 30 |
import java.util.ArrayList; |
|
| 31 |
import java.util.List; |
|
| 32 |
|
|
| 33 |
import org.apache.commons.lang.StringUtils; |
|
| 34 |
import org.eclipse.core.commands.AbstractHandler; |
|
| 35 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 36 |
import org.eclipse.core.commands.ExecutionException; |
|
| 37 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 38 |
import org.eclipse.ui.IWorkbenchPage; |
|
| 39 |
import org.eclipse.ui.IWorkbenchWindow; |
|
| 40 |
import org.eclipse.ui.PlatformUI; |
|
| 41 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
| 42 |
import org.txm.edition.rcp.editors.SynopticEditionEditor; |
|
| 43 |
import org.txm.edition.rcp.editors.SynopticEditorInput; |
|
| 44 |
import org.txm.edition.rcp.messages.SynopticEditionUIMessages; |
|
| 45 |
import org.txm.objects.BaseParameters; |
|
| 46 |
import org.txm.objects.Text; |
|
| 47 |
import org.txm.searchengine.cqp.corpus.Corpus; |
|
| 48 |
import org.txm.searchengine.cqp.corpus.MainCorpus; |
|
| 49 |
import org.txm.searchengine.cqp.corpus.Property; |
|
| 50 |
import org.txm.searchengine.cqp.corpus.StructuralUnit; |
|
| 51 |
import org.txm.searchengine.cqp.corpus.Subcorpus; |
|
| 52 |
import org.txm.searchengine.cqp.corpus.query.Match; |
|
| 53 |
import org.txm.utils.logger.Log; |
|
| 54 |
import org.w3c.dom.Element; |
|
| 55 |
|
|
| 56 |
// TODO: Auto-generated Javadoc |
|
| 57 |
/** |
|
| 58 |
* Open a text edition from: a main corpus : the first text of the maincorpus a |
|
| 59 |
* sub-corpus : the first text of the subcorpus a partition : the user must |
|
| 60 |
* choose one of the text used in the partition @ author mdecorde. |
|
| 61 |
*/ |
|
| 62 |
public class OpenEdition extends AbstractHandler {
|
|
| 63 |
|
|
| 64 |
/** The Constant ID. */ |
|
| 65 |
public final static String ID = "org.txm.synopticedition.rcp.handlers.OpenEdition"; //$NON-NLS-1$ |
|
| 66 |
|
|
| 67 |
/** The lastopenedfile. */ |
|
| 68 |
public static String lastopenedfile; |
|
| 69 |
|
|
| 70 |
/* (non-Javadoc) |
|
| 71 |
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) |
|
| 72 |
*/ |
|
| 73 |
@Override |
|
| 74 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
|
| 75 |
|
|
| 76 |
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); |
|
| 77 |
if (selection.getFirstElement() instanceof Corpus) {
|
|
| 78 |
try {
|
|
| 79 |
Corpus c = (Corpus) selection.getFirstElement(); |
|
| 80 |
// Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell(); |
|
| 81 |
|
|
| 82 |
//EditionSelectorDialog d = new EditionSelectorDialog(shell, c, null); |
|
| 83 |
SynopticEditionEditor editor = null; |
|
| 84 |
// if (c.getEditionNames().size() > 1 && d.open() == Window.OK) {
|
|
| 85 |
// Object[] rez = d.getResult(); |
|
| 86 |
// String[] rezS = new String[rez.length]; |
|
| 87 |
// for (int i =0 ; i < rez.length ; i++) rezS[i] = rez[i].toString(); |
|
| 88 |
// editor = openEdition(c, rezS); |
|
| 89 |
// } else |
|
| 90 |
String[] editionsToOpen = getDefaultEditions(c); |
|
| 91 |
|
|
| 92 |
if (editionsToOpen.length == 0) { // the defaultEdition parameter is not set
|
|
| 93 |
ArrayList<String> editionNames = c.getEditionNames(); |
|
| 94 |
if (editionNames.size() > 0) { // use the first edition declared
|
|
| 95 |
editionsToOpen = new String[1]; |
|
| 96 |
editionsToOpen[0] = editionNames.get(0); |
|
| 97 |
Log.info(SynopticEditionUIMessages.OpenEdition_0+editionNames.get(0)); |
|
| 98 |
} else { // no edition in the corpus
|
|
| 99 |
Log.info(SynopticEditionUIMessages.OpenEdition_1); |
|
| 100 |
editionsToOpen = new String[0]; |
|
| 101 |
return false; |
|
| 102 |
} |
|
| 103 |
} else {
|
|
| 104 |
Log.info(SynopticEditionUIMessages.OpenEdition_3+StringUtils.join(editionsToOpen)); |
|
| 105 |
} |
|
| 106 |
|
|
| 107 |
editor = openEdition(c, editionsToOpen); |
|
| 108 |
|
|
| 109 |
if (editor != null) |
|
| 110 |
editor.firstPage(); |
|
| 111 |
|
|
| 112 |
} catch (Exception e) {
|
|
| 113 |
System.out.println(SynopticEditionUIMessages.OpenEdition_4+e); |
|
| 114 |
org.txm.rcp.utils.Logger.printStackTrace(e); |
|
| 115 |
} |
|
| 116 |
} else {
|
|
| 117 |
System.out.println(SynopticEditionUIMessages.OpenEdition_9); |
|
| 118 |
} |
|
| 119 |
return null; |
|
| 120 |
} |
|
| 121 |
public static String[] getDefaultEditions(Corpus c) {
|
|
| 122 |
BaseParameters params = c.getBase().getBaseParameters(); |
|
| 123 |
Element editionsElement = params.getEditionsElement(params.getCorpusElement()); |
|
| 124 |
return editionsElement.getAttribute("default").split(","); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 125 |
} |
|
| 126 |
|
|
| 127 |
/** |
|
| 128 |
* Open edition, but don't show a page |
|
| 129 |
* |
|
| 130 |
* @param corpus the corpus |
|
| 131 |
* @return the object |
|
| 132 |
*/ |
|
| 133 |
public static SynopticEditionEditor openEdition(Corpus corpus, String[] editions) {
|
|
| 134 |
String textid = null; |
|
| 135 |
|
|
| 136 |
System.out.println("Opening edition of "+corpus); //$NON-NLS-1$
|
|
| 137 |
try {
|
|
| 138 |
Text text = null; |
|
| 139 |
if (corpus instanceof Subcorpus) {
|
|
| 140 |
Subcorpus sub = (Subcorpus)corpus; |
|
| 141 |
List<Match> matches = sub.getMatches(); |
|
| 142 |
if (matches.size() > 0) {
|
|
| 143 |
StructuralUnit text_su = corpus.getStructuralUnit("text"); //$NON-NLS-1$
|
|
| 144 |
Property text_id = text_su.getProperty("id"); //$NON-NLS-1$
|
|
| 145 |
|
|
| 146 |
textid = matches.get(0).getValueForProperty(text_id); |
|
| 147 |
if (textid != null) text = corpus.getMainCorpus().getText(textid); |
|
| 148 |
} |
|
| 149 |
} |
|
| 150 |
// QueryResult result = corpus.query(new Query("<text> []"), "get_edition", false); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 151 |
// StructuralUnit text_su = corpus.getStructuralUnit("text"); //$NON-NLS-1$
|
|
| 152 |
// Property text_id = text_su.getProperty("id"); //$NON-NLS-1$
|
|
| 153 |
|
|
| 154 |
// if (result.getNMatch() > 0) textid = result.getMatches(0, 1).get(0).getValueForProperty(text_id); |
|
| 155 |
MainCorpus maincorpus = corpus.getMainCorpus(); |
|
| 156 |
|
|
| 157 |
// if (textid != null) text = maincorpus.getText(textid); |
|
| 158 |
|
|
| 159 |
if (text == null) {
|
|
| 160 |
text = maincorpus.getFirstText(); |
|
| 161 |
|
|
| 162 |
if (text == null) {
|
|
| 163 |
System.out.println("** Could not find first text of ID "+textid+SynopticEditionUIMessages.OpenEdition_7); //$NON-NLS-1$ //$NON-NLS-1$
|
|
| 164 |
return null; |
|
| 165 |
} |
|
| 166 |
|
|
| 167 |
textid = text.getName(); |
|
| 168 |
} |
|
| 169 |
|
|
| 170 |
//String[] editions = {maincorpus.getDefaultEdition()};
|
|
| 171 |
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
|
| 172 |
IWorkbenchPage page = window.getActivePage(); |
|
| 173 |
|
|
| 174 |
SynopticEditorInput editorInput = new SynopticEditorInput(corpus, text.getName(), editions); |
|
| 175 |
SynopticEditionEditor editor = (SynopticEditionEditor) page.openEditor(editorInput, |
|
| 176 |
SynopticEditionEditor.ID, true); |
|
| 177 |
|
|
| 178 |
return editor; |
|
| 179 |
|
|
| 180 |
} catch (Exception e) {
|
|
| 181 |
Log.printStackTrace(e); |
|
| 182 |
System.out.println(SynopticEditionUIMessages.OpenEdition_10+e); |
|
| 183 |
return null; |
|
| 184 |
} |
|
| 185 |
} |
|
| 186 |
} |
|
| 0 | 187 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/___TextToConcordance.java (revision 936) | ||
|---|---|---|
| 1 |
// Copyright © 2010-2013 ENS de Lyon. |
|
| 2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
| 3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
| 4 |
// Sophia Antipolis, University of Paris 3. |
|
| 5 |
// |
|
| 6 |
// The TXM platform is free software: you can redistribute it |
|
| 7 |
// and/or modify it under the terms of the GNU General Public |
|
| 8 |
// License as published by the Free Software Foundation, |
|
| 9 |
// either version 2 of the License, or (at your option) any |
|
| 10 |
// later version. |
|
| 11 |
// |
|
| 12 |
// The TXM platform is distributed in the hope that it will be |
|
| 13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
| 14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
| 15 |
// PURPOSE. See the GNU General Public License for more |
|
| 16 |
// details. |
|
| 17 |
// |
|
| 18 |
// You should have received a copy of the GNU General |
|
| 19 |
// Public License along with the TXM platform. If not, see |
|
| 20 |
// http://www.gnu.org/licenses. |
|
| 21 |
// |
|
| 22 |
// |
|
| 23 |
// |
|
| 24 |
// $LastChangedDate:$ |
|
| 25 |
// $LastChangedRevision:$ |
|
| 26 |
// $LastChangedBy:$ |
|
| 27 |
// |
|
| 28 |
package org.txm.edition.rcp.handlers; |
|
| 29 |
|
|
| 30 |
import org.eclipse.core.commands.AbstractHandler; |
|
| 31 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 32 |
import org.eclipse.core.commands.ExecutionException; |
|
| 33 |
import org.eclipse.osgi.util.NLS; |
|
| 34 |
import org.eclipse.ui.IEditorPart; |
|
| 35 |
import org.eclipse.ui.IWorkbenchPage; |
|
| 36 |
import org.eclipse.ui.IWorkbenchWindow; |
|
| 37 |
import org.eclipse.ui.PartInitException; |
|
| 38 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
| 39 |
import org.txm.concordance.core.functions.Concordance; |
|
| 40 |
import org.txm.concordance.rcp.editors.ConcordanceEditor; |
|
| 41 |
import org.txm.rcp.editors.IEditionEditor; |
|
| 42 |
import org.txm.rcp.editors.TXMResultEditorInput; |
|
| 43 |
import org.txm.rcp.messages.TXMUIMessages; |
|
| 44 |
import org.txm.searchengine.cqp.corpus.Corpus; |
|
| 45 |
import org.txm.searchengine.cqp.corpus.query.Query; |
|
| 46 |
|
|
| 47 |
// TODO: Auto-generated Javadoc |
|
| 48 |
/** |
|
| 49 |
* use the ITextSelection to compute a concordance |
|
| 50 |
* |
|
| 51 |
* @author mdecorde. |
|
| 52 |
*/ |
|
| 53 |
@Deprecated |
|
| 54 |
public class ___TextToConcordance extends AbstractHandler {
|
|
| 55 |
|
|
| 56 |
/* (non-Javadoc) |
|
| 57 |
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) |
|
| 58 |
*/ |
|
| 59 |
@Override |
|
| 60 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
|
| 61 |
//System.out.println("Call TextToConcordance");
|
|
| 62 |
IWorkbenchWindow window; |
|
| 63 |
TXMResultEditorInput editorInput; |
|
| 64 |
window = HandlerUtil.getActiveWorkbenchWindow(event); |
|
| 65 |
//selection = HandlerUtil.getCurrentSelection(event); |
|
| 66 |
|
|
| 67 |
IEditorPart editor = window.getActivePage().getActiveEditor(); |
|
| 68 |
|
|
| 69 |
if (editor instanceof IEditionEditor) {
|
|
| 70 |
|
|
| 71 |
//System.out.println(((TXMBrowser)editor).getWordIDsSelection()); |
|
| 72 |
String query = ((IEditionEditor)editor).getTextSelection(); |
|
| 73 |
if (query.length() == 0) {
|
|
| 74 |
System.out.println("No text selection. Aborting.");
|
|
| 75 |
return null; |
|
| 76 |
} |
|
| 77 |
query = fixQuery(query); |
|
| 78 |
|
|
| 79 |
Corpus corpus = ((IEditionEditor)editor).getCorpus(); |
|
| 80 |
Concordance concordance = new Concordance(corpus); |
|
| 81 |
concordance.setParameters(new Query(query), null, null, null, null, null, null, null, null, null, null); |
|
| 82 |
editorInput = new TXMResultEditorInput(concordance); |
|
| 83 |
|
|
| 84 |
IWorkbenchPage page = window.getActivePage(); |
|
| 85 |
try {
|
|
| 86 |
ConcordanceEditor conceditor = (ConcordanceEditor) page |
|
| 87 |
.openEditor(editorInput, "ConcordanceEditor"); //$NON-NLS-1$ |
|
| 88 |
} catch (PartInitException e) {
|
|
| 89 |
System.err.println("Error: "+e.getLocalizedMessage());
|
|
| 90 |
} |
|
| 91 |
} |
|
| 92 |
return null; |
|
| 93 |
} |
|
| 94 |
|
|
| 95 |
public static String fixQuery(String query) {
|
|
| 96 |
query = "\""+query.replaceAll("\"", "\\\"");//.replaceAll("("+TokenizerClasses.regPunct+")", " $1 ");
|
|
| 97 |
query = query.replaceAll(" +", "\" \"")+"\"";
|
|
| 98 |
return query; |
|
| 99 |
} |
|
| 100 |
} |
|
| 0 | 101 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/BackToText.java (revision 936) | ||
|---|---|---|
| 1 |
// Copyright © 2010-2013 ENS de Lyon. |
|
| 2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
| 3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
| 4 |
// Sophia Antipolis, University of Paris 3. |
|
| 5 |
// |
|
| 6 |
// The TXM platform is free software: you can redistribute it |
|
| 7 |
// and/or modify it under the terms of the GNU General Public |
|
| 8 |
// License as published by the Free Software Foundation, |
|
| 9 |
// either version 2 of the License, or (at your option) any |
|
| 10 |
// later version. |
|
| 11 |
// |
|
| 12 |
// The TXM platform is distributed in the hope that it will be |
|
| 13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
| 14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
| 15 |
// PURPOSE. See the GNU General Public License for more |
|
| 16 |
// details. |
|
| 17 |
// |
|
| 18 |
// You should have received a copy of the GNU General |
|
| 19 |
// Public License along with the TXM platform. If not, see |
|
| 20 |
// http://www.gnu.org/licenses. |
|
| 21 |
// |
|
| 22 |
// |
|
| 23 |
// |
|
| 24 |
// $LastChangedDate:$ |
|
| 25 |
// $LastChangedRevision:$ |
|
| 26 |
// $LastChangedBy:$ |
|
| 27 |
// |
|
| 28 |
package org.txm.edition.rcp.handlers; |
|
| 29 |
|
|
| 30 |
|
|
| 31 |
import java.util.ArrayList; |
|
| 32 |
import java.util.HashMap; |
|
| 33 |
import java.util.HashSet; |
|
| 34 |
import java.util.List; |
|
| 35 |
|
|
| 36 |
import org.apache.commons.lang.StringUtils; |
|
| 37 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 38 |
import org.eclipse.core.commands.ExecutionException; |
|
| 39 |
import org.eclipse.e4.ui.workbench.modeling.EModelService; |
|
| 40 |
import org.eclipse.jface.viewers.ISelection; |
|
| 41 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 42 |
import org.eclipse.osgi.util.NLS; |
|
| 43 |
import org.eclipse.ui.IEditorPart; |
|
| 44 |
import org.eclipse.ui.IWorkbenchPage; |
|
| 45 |
import org.eclipse.ui.IWorkbenchWindow; |
|
| 46 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
| 47 |
import org.txm.concordance.core.functions.Concordance; |
|
| 48 |
import org.txm.concordance.rcp.editors.ConcordanceEditor; |
|
| 49 |
import org.txm.concordance.rcp.handlers.BackToTextCommand; |
|
| 50 |
import org.txm.edition.rcp.editors.RGBA; |
|
| 51 |
import org.txm.edition.rcp.editors.SynopticEditionEditor; |
|
| 52 |
import org.txm.edition.rcp.messages.SynopticEditionUIMessages; |
|
| 53 |
import org.txm.objects.Text; |
|
| 54 |
import org.txm.rcp.StatusLine; |
|
| 55 |
import org.txm.rcp.utils.SWTEditorsUtils; |
|
| 56 |
import org.txm.searchengine.cqp.AbstractCqiClient; |
|
| 57 |
import org.txm.searchengine.cqp.CQPSearchEngine; |
|
| 58 |
import org.txm.searchengine.cqp.corpus.Corpus; |
|
| 59 |
import org.txm.searchengine.cqp.corpus.CorpusManager; |
|
| 60 |
import org.txm.searchengine.cqp.corpus.MainCorpus; |
|
| 61 |
import org.txm.searchengine.cqp.corpus.Property; |
|
| 62 |
import org.txm.searchengine.cqp.corpus.StructuralUnit; |
|
| 63 |
import org.txm.searchengine.cqp.corpus.query.Match; |
|
| 64 |
import org.txm.utils.logger.Log; |
|
| 65 |
|
|
| 66 |
/** |
|
| 67 |
* Open a text edition from: a concordance Line |
|
| 68 |
* |
|
| 69 |
* Or Open a text edition from command parameters see plugin.xml |
|
| 70 |
* |
|
| 71 |
* @author mdecorde. |
|
| 72 |
*/ |
|
| 73 |
public class BackToText extends BackToTextCommand {
|
|
| 74 |
|
|
| 75 |
/** The Constant ID. */ |
|
| 76 |
public final static String ID = "org.txm.synopticedition.rcp.handlers.BackToText"; //$NON-NLS-1$ |
|
| 77 |
public final static RGBA lightred = new RGBA(249,208,208); |
|
| 78 |
public final static RGBA red = new RGBA(249, 160, 160); |
|
| 79 |
//TODO: this kind of link associations must be transfered to a TXMEditor class |
|
| 80 |
private static HashMap<ConcordanceEditor, SynopticEditionEditor> associatedEditors = new HashMap<ConcordanceEditor, SynopticEditionEditor>(); |
|
| 81 |
private static HashMap<ConcordanceEditor, List<String>> associatedEditorsPreviousOtherWordIDs = new HashMap<ConcordanceEditor, List<String>>(); |
|
| 82 |
private static HashMap<ConcordanceEditor, List<String>> associatedEditorsPreviousLineids = new HashMap<ConcordanceEditor, List<String>>(); |
|
| 83 |
|
|
| 84 |
/* (non-Javadoc) |
|
| 85 |
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) |
|
| 86 |
*/ |
|
| 87 |
@Override |
|
| 88 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
|
| 89 |
|
|
| 90 |
String wordid = event |
|
| 91 |
.getParameter("org.txm.edition.rcp.handlers.BackToText.wordid");
|
|
| 92 |
String textid = event |
|
| 93 |
.getParameter("org.txm.edition.rcp.handlers.BackToText.textid");
|
|
| 94 |
String editionid = event |
|
| 95 |
.getParameter("org.txm.edition.rcp.handlers.BackToText.editionid");
|
|
| 96 |
String corpusid = event |
|
| 97 |
.getParameter("org.txm.edition.rcp.handlers.BackToText.corpusid");
|
|
| 98 |
if (corpusid != null) { // minimal parameter is the corpus id
|
|
| 99 |
try {
|
|
| 100 |
IWorkbenchWindow wb = HandlerUtil.getActiveWorkbenchWindow(event); |
|
| 101 |
IEditorPart ieditor = wb.getActivePage().getActiveEditor(); |
|
| 102 |
|
|
| 103 |
if (!backToText(ieditor, corpusid, editionid, textid, wordid)) {
|
|
| 104 |
System.out.println("Could not open edition for wordid="+wordid+" textid="+textid+" edition="+editionid);
|
|
| 105 |
} |
|
| 106 |
} catch (Exception e) {
|
|
| 107 |
// TODO Auto-generated catch block |
|
| 108 |
e.printStackTrace(); |
|
| 109 |
} |
|
| 110 |
return null; |
|
| 111 |
} |
|
| 112 |
|
|
| 113 |
IWorkbenchWindow wb = HandlerUtil.getActiveWorkbenchWindow(event); |
|
| 114 |
IEditorPart ieditor = wb.getActivePage().getActiveEditor(); |
|
| 115 |
if (!(ieditor instanceof ConcordanceEditor)) {
|
|
| 116 |
return null; |
|
| 117 |
} |
|
| 118 |
ConcordanceEditor concordanceEditor = (ConcordanceEditor)ieditor; |
|
| 119 |
// FIXME: SJ: new version |
|
| 120 |
concordanceEditor.backToText(); |
|
| 121 |
// FIXME: SJ: old version |
|
| 122 |
// ISelection sel = wb.getSelectionService().getSelection(); |
|
| 123 |
// if (sel instanceof IStructuredSelection) {
|
|
| 124 |
// IStructuredSelection selection = (IStructuredSelection) sel; |
|
| 125 |
// if (selection.getFirstElement() instanceof Match) {
|
|
| 126 |
// backToText(concordanceEditor, (Match)(selection.getFirstElement())); |
|
| 127 |
// } else {
|
|
| 128 |
// System.out.println(SynopticEditionUIMessages.BackToText_1+selection); |
|
| 129 |
// } |
|
| 130 |
// } else {
|
|
| 131 |
// System.out.println(SynopticEditionUIMessages.BackToText_2); |
|
| 132 |
// } |
|
| 133 |
return null; |
|
| 134 |
} |
|
| 135 |
|
|
| 136 |
private boolean backToText(IEditorPart ieditor, String corpusid, String editionid, String textid, String wordid) throws Exception {
|
|
| 137 |
MainCorpus corpus = CorpusManager.getCorpusManager().getCorpus(corpusid); |
|
| 138 |
|
|
| 139 |
if (corpus == null) {
|
|
| 140 |
System.out.println("Error: no corpus with ID="+corpusid);
|
|
| 141 |
} |
|
| 142 |
|
|
| 143 |
if (editionid != null && !corpus.getEditionNames().contains(editionid)) {
|
|
| 144 |
System.out.println("Warning: corpus has no edition with id="+editionid);
|
|
| 145 |
editionid = "default"; |
|
| 146 |
} |
|
| 147 |
|
|
| 148 |
if (!corpus.getEditionNames().contains(editionid)) {
|
|
| 149 |
System.out.println("Error: corpus has no default edition.");
|
|
| 150 |
System.out.println("Availables: "+corpus.getEditionNames());
|
|
| 151 |
return false; |
|
| 152 |
} |
|
| 153 |
|
|
| 154 |
if (editionid == null) editionid = "default"; |
|
| 155 |
|
|
| 156 |
String[] editions = {editionid};
|
|
| 157 |
SynopticEditionEditor editor = null; |
|
| 158 |
if (ieditor != null && ieditor instanceof SynopticEditionEditor) {
|
|
| 159 |
editor = (SynopticEditionEditor)ieditor; |
|
| 160 |
} else {
|
|
| 161 |
editor = OpenEdition.openEdition(corpus, editions); |
|
| 162 |
} |
|
| 163 |
|
|
| 164 |
Text text = null; |
|
| 165 |
if (textid != null) {
|
|
| 166 |
text = corpus.getText(textid); |
|
| 167 |
if (text == null) {
|
|
| 168 |
System.out.println("Error: corpus has no text with id="+textid);
|
|
| 169 |
return false; |
|
| 170 |
} |
|
| 171 |
} else {
|
|
| 172 |
text = corpus.getFirstText(); |
|
| 173 |
if (text == null) {
|
|
| 174 |
System.out.println("Error: corpus has no text.");
|
|
| 175 |
return false; |
|
| 176 |
} |
|
| 177 |
} |
|
| 178 |
|
|
| 179 |
editor.backToText(text, wordid); |
|
| 180 |
if (wordid != null) {
|
|
| 181 |
editor.addHighlightWordsById(red, wordid); |
|
| 182 |
} |
|
| 183 |
return false; |
|
| 184 |
} |
|
| 185 |
|
|
| 186 |
/** |
|
| 187 |
* Open edition. |
|
| 188 |
* |
|
| 189 |
* @param corpus the corpus |
|
| 190 |
* @return the object |
|
| 191 |
*/ |
|
| 192 |
@Override |
|
| 193 |
public boolean backToText(ConcordanceEditor editor, Match match) {
|
|
| 194 |
Concordance conc = editor.getConcordance(); |
|
| 195 |
Corpus corpus = editor.getCorpus(); |
|
| 196 |
|
|
| 197 |
try {
|
|
| 198 |
if (match == null) return false; |
|
| 199 |
|
|
| 200 |
StructuralUnit textS = null; |
|
| 201 |
String textid = ""; //$NON-NLS-1$ |
|
| 202 |
String baseid = ""; //$NON-NLS-1$ |
|
| 203 |
|
|
| 204 |
Property xProperty = corpus.getProperty("x"), yProperty, wProperty, hProperty;
|
|
| 205 |
String x="0",y="0",w="0",h="0"; |
|
| 206 |
int[] pos = null; |
|
| 207 |
if (xProperty != null) {
|
|
| 208 |
yProperty = corpus.getProperty("y");
|
|
| 209 |
if (yProperty != null) {
|
|
| 210 |
wProperty = corpus.getProperty("w");
|
|
| 211 |
if (wProperty != null) {
|
|
| 212 |
AbstractCqiClient CQI = CQPSearchEngine.getCqiClient(); |
|
| 213 |
int[] cpos = {match.getStart()};
|
|
| 214 |
hProperty = corpus.getProperty("h");
|
|
| 215 |
if (hProperty != null) {
|
|
| 216 |
x = CQI.cpos2Str(xProperty.getQualifiedName(), cpos)[0]; |
|
| 217 |
y = CQI.cpos2Str(yProperty.getQualifiedName(), cpos)[0]; |
|
| 218 |
w = CQI.cpos2Str(wProperty.getQualifiedName(), cpos)[0]; |
|
| 219 |
h = CQI.cpos2Str(hProperty.getQualifiedName(), cpos)[0]; |
|
| 220 |
|
|
| 221 |
pos = new int[4]; |
|
| 222 |
pos[0] = Integer.parseInt(x); |
|
| 223 |
pos[1] = Integer.parseInt(y); |
|
| 224 |
pos[2] = Integer.parseInt(w); |
|
| 225 |
pos[3] = Integer.parseInt(h); |
|
| 226 |
} |
|
| 227 |
} |
|
| 228 |
} |
|
| 229 |
} |
|
| 230 |
|
|
| 231 |
|
|
| 232 |
String projectid = ""; //$NON-NLS-1$ |
|
| 233 |
try {
|
|
| 234 |
textS = corpus.getStructuralUnit("text"); //$NON-NLS-1$
|
|
| 235 |
Property textP = textS.getProperty("id"); //$NON-NLS-1$
|
|
| 236 |
textid = match.getValueForProperty(textP);// get text via text struct property id |
|
| 237 |
} catch (Exception e2) {
|
|
| 238 |
System.out.println("The corpus has no text_id property" + e2); //$NON-NLS-1$
|
|
| 239 |
org.txm.rcp.utils.Logger.printStackTrace(e2); |
|
| 240 |
return false; |
|
| 241 |
} |
|
| 242 |
|
|
| 243 |
Log.info("Loading line informations..."); //$NON-NLS-1$
|
|
| 244 |
|
|
| 245 |
SynopticEditionEditor attachedBrowserEditor = associatedEditors.get(editor); |
|
| 246 |
if (attachedBrowserEditor!= null && attachedBrowserEditor.isDisposed()) {
|
|
| 247 |
associatedEditorsPreviousOtherWordIDs.put(editor, new ArrayList<String>()); |
|
| 248 |
associatedEditorsPreviousLineids.put(editor, new ArrayList<String>()); |
|
| 249 |
} |
|
| 250 |
List<String> previousOtherWordIDs = associatedEditorsPreviousOtherWordIDs.get(editor); |
|
| 251 |
List<String> previousLineids = associatedEditorsPreviousLineids.get(editor); |
|
| 252 |
|
|
| 253 |
if (attachedBrowserEditor == null || attachedBrowserEditor.isDisposed()) {
|
|
| 254 |
String[] editionsToOpen = OpenEdition.getDefaultEditions(corpus); |
|
| 255 |
|
|
| 256 |
if (editionsToOpen.length == 0) { // the defaultEdition parameter is not set
|
|
| 257 |
ArrayList<String> editionNames = corpus.getEditionNames(); |
|
| 258 |
if (editionNames.size() > 0) { // use the first edition declared
|
|
| 259 |
editionsToOpen = new String[1]; |
|
| 260 |
editionsToOpen[0] = editionNames.get(0); |
|
| 261 |
Log.info(SynopticEditionUIMessages.BackToText_0+editionNames.get(0)); |
|
| 262 |
} else { // no edition in the corpus
|
|
| 263 |
Log.info(SynopticEditionUIMessages.BackToText_4); |
|
| 264 |
editionsToOpen = new String[0]; |
|
| 265 |
return false; |
|
| 266 |
} |
|
| 267 |
} else {
|
|
| 268 |
Log.info(SynopticEditionUIMessages.BackToText_5+StringUtils.join(editionsToOpen)); |
|
| 269 |
} |
|
| 270 |
|
|
| 271 |
attachedBrowserEditor = OpenEdition.openEdition(corpus, editionsToOpen); |
|
| 272 |
associatedEditors.put(editor, attachedBrowserEditor); |
|
| 273 |
SWTEditorsUtils.addEditor(editor, attachedBrowserEditor, EModelService.ABOVE); |
|
| 274 |
} |
|
| 275 |
|
|
| 276 |
// remove previous highlighted words |
|
| 277 |
if (previousOtherWordIDs != null) {
|
|
| 278 |
//System.out.println("remove previousOtherWordIDs="+previousOtherWordIDs);
|
|
| 279 |
attachedBrowserEditor.removeHighlightWordsById(lightred, previousOtherWordIDs); |
|
| 280 |
associatedEditorsPreviousOtherWordIDs.remove(editor); // free mem |
|
| 281 |
} |
|
| 282 |
if (previousLineids != null) {
|
|
| 283 |
//System.out.println("remove previousLineids="+previousLineids);
|
|
| 284 |
attachedBrowserEditor.removeHighlightWordsById(red, previousLineids); |
|
| 285 |
associatedEditorsPreviousLineids.remove(editor); // free mem |
|
| 286 |
} |
|
| 287 |
|
|
| 288 |
//System.out.println("getKeywordsId from "+editor.getTopLine()+" to "+editor.getBottomLine() + 1);
|
|
| 289 |
List<String> otherWordIDs = conc.getKeywordsId(textid, editor.getTopLine(), editor.getBottomLine() + 1); |
|
| 290 |
//System.out.println("getKeywordsId="+otherWordIDs);
|
|
| 291 |
List<String> lineids = null; |
|
| 292 |
try {
|
|
| 293 |
lineids = match.getValuesForProperty(corpus.getProperty("id")); //$NON-NLS-1$
|
|
| 294 |
} catch (Exception e1) {
|
|
| 295 |
org.txm.rcp.utils.Logger.printStackTrace(e1); |
|
| 296 |
return false; |
|
| 297 |
} |
|
| 298 |
Log.info(NLS.bind("Project id {0} Corpus (Base) id {1} Text id {2}", //$NON-NLS-1$
|
|
| 299 |
new Object[]{projectid, baseid, textid}));
|
|
| 300 |
|
|
| 301 |
otherWordIDs.removeAll(lineids); // remove the pivot from others words |
|
| 302 |
|
|
| 303 |
Text text = corpus.getMainCorpus().getText(textid); |
|
| 304 |
if (text == null) {
|
|
| 305 |
System.out.println(NLS.bind("BackToText: Text {0} is missing", textid)); //$NON-NLS-1$
|
|
| 306 |
StatusLine.setMessage(NLS.bind("BackToText: Text {0} is missing", textid)); //$NON-NLS-1$
|
|
| 307 |
Log.severe(NLS.bind("BackToText: Text {0} is missing", textid)); //$NON-NLS-1$
|
|
| 308 |
return false; |
|
| 309 |
} |
|
| 310 |
|
|
| 311 |
String line_wordid = lineids.get(0); |
|
| 312 |
if (line_wordid == null) {
|
|
| 313 |
System.out.println(SynopticEditionUIMessages.BackToText_3); |
|
| 314 |
return false; |
|
| 315 |
} |
|
| 316 |
|
|
| 317 |
|
|
| 318 |
String focusid = null; |
|
| 319 |
if (lineids.size() > 0) focusid = lineids.get(0); |
|
| 320 |
|
|
| 321 |
//System.out.println("add otherWordIDs="+otherWordIDs);
|
|
| 322 |
attachedBrowserEditor.addHighlightWordsById(lightred, otherWordIDs); |
|
| 323 |
|
|
| 324 |
//System.out.println("add linesids="+lineids);
|
|
| 325 |
attachedBrowserEditor.addHighlightWordsById(red, lineids); |
|
| 326 |
|
|
| 327 |
associatedEditorsPreviousOtherWordIDs.put(editor, otherWordIDs); |
|
| 328 |
associatedEditorsPreviousLineids.put(editor, lineids); |
|
| 329 |
|
|
| 330 |
HashSet<int[]> posses = new HashSet<int[]>(); |
|
| 331 |
posses.add(pos); |
|
| 332 |
attachedBrowserEditor.setHighlightedArea(posses); |
|
| 333 |
|
|
| 334 |
attachedBrowserEditor.setFocusedWordID(focusid); |
|
| 335 |
|
|
| 336 |
// reload the page and styles |
|
| 337 |
attachedBrowserEditor.backToText(text, line_wordid);// open the page(S) containing the word with id=line_wordid |
|
| 338 |
|
|
| 339 |
IWorkbenchPage attachedPage = attachedBrowserEditor.getEditorSite().getPage(); |
|
| 340 |
attachedPage.activate(attachedBrowserEditor); |
|
| 341 |
|
|
| 342 |
return true; |
|
| 343 |
|
|
| 344 |
} catch (Exception err) {
|
|
| 345 |
Log.severe(NLS.bind("Full text display failed: {0}", err)); //$NON-NLS-1$
|
|
| 346 |
Log.printStackTrace(err); |
|
| 347 |
} |
|
| 348 |
return false; |
|
| 349 |
} |
|
| 350 |
} |
|
| 0 | 351 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/handlers/SendEditionTo.java (revision 936) | ||
|---|---|---|
| 1 |
// Copyright © 2010-2013 ENS de Lyon. |
|
| 2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
| 3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
| 4 |
// Sophia Antipolis, University of Paris 3. |
|
| 5 |
// |
|
| 6 |
// The TXM platform is free software: you can redistribute it |
|
| 7 |
// and/or modify it under the terms of the GNU General Public |
|
| 8 |
// License as published by the Free Software Foundation, |
|
| 9 |
// either version 2 of the License, or (at your option) any |
|
| 10 |
// later version. |
|
| 11 |
// |
|
| 12 |
// The TXM platform is distributed in the hope that it will be |
|
| 13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
| 14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
| 15 |
// PURPOSE. See the GNU General Public License for more |
|
| 16 |
// details. |
|
| 17 |
// |
|
| 18 |
// You should have received a copy of the GNU General |
|
| 19 |
// Public License along with the TXM platform. If not, see |
|
| 20 |
// http://www.gnu.org/licenses. |
|
| 21 |
// |
|
| 22 |
// |
|
| 23 |
// |
|
| 24 |
// $LastChangedDate:$ |
|
| 25 |
// $LastChangedRevision:$ |
|
| 26 |
// $LastChangedBy:$ |
|
| 27 |
// |
|
| 28 |
package org.txm.edition.rcp.handlers; |
|
| 29 |
|
|
| 30 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 31 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 32 |
import org.txm.core.results.TXMResult; |
|
| 33 |
import org.txm.links.rcp.handlers.SendSelectionToQueryable; |
|
| 34 |
import org.txm.rcp.editors.IEditionEditor; |
|
| 35 |
|
|
| 36 |
/** |
|
| 37 |
* Sends the selected text of an edition to compute another command. |
|
| 38 |
* |
|
| 39 |
* @author mdecorde |
|
| 40 |
* @author sjacquot |
|
| 41 |
* |
|
| 42 |
*/ |
|
| 43 |
public class SendEditionTo extends SendSelectionToQueryable {
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
@Override |
|
| 47 |
public String createQuery(ExecutionEvent event, IStructuredSelection selection) {
|
|
| 48 |
IEditionEditor editor = (IEditionEditor) this.getActiveEditor(event); |
|
| 49 |
String query = ((IEditionEditor)editor).getTextSelection(); |
|
| 50 |
query = "\"" + query.replaceAll("\"", "\\\"");//.replaceAll("("+TokenizerClasses.regPunct+")", " $1 ");
|
|
| 51 |
query = query.replaceAll(" +", "\" \"") + "\"";
|
|
| 52 |
return query; |
|
| 53 |
} |
|
| 54 |
|
|
| 55 |
@Override |
|
| 56 |
public TXMResult getResultParent(ExecutionEvent event) {
|
|
| 57 |
return ((IEditionEditor) this.getActiveEditor(event)).getCorpus(); |
|
| 58 |
} |
|
| 59 |
|
|
| 60 |
} |
|
| 0 | 61 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferencePage.java (revision 936) | ||
|---|---|---|
| 1 |
package org.txm.edition.rcp.preferences; |
|
| 2 |
|
|
| 3 |
import org.eclipse.jface.preference.BooleanFieldEditor; |
|
| 4 |
import org.eclipse.jface.preference.FieldEditorPreferencePage; |
|
| 5 |
import org.eclipse.ui.IWorkbench; |
|
| 6 |
import org.eclipse.ui.IWorkbenchPreferencePage; |
|
| 7 |
import org.eclipse.ui.preferences.ScopedPreferenceStore; |
|
| 8 |
import org.txm.rcp.Application; |
|
| 9 |
|
|
| 10 |
public class SynopticEditionPreferencePage extends FieldEditorPreferencePage |
|
| 11 |
implements IWorkbenchPreferencePage {
|
|
| 12 |
ScopedPreferenceStore preferences; |
|
| 13 |
|
|
| 14 |
private BooleanFieldEditor fast_highlight; |
|
| 15 |
|
|
| 16 |
|
|
| 17 |
public SynopticEditionPreferencePage() {
|
|
| 18 |
super(); |
|
| 19 |
preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE, |
|
| 20 |
Application.PLUGIN_ID); |
|
| 21 |
setPreferenceStore(preferences); |
|
| 22 |
setTitle("Edition");
|
|
| 23 |
} |
|
| 24 |
|
|
| 25 |
@Override |
|
| 26 |
public void init(IWorkbench workbench) { }
|
|
| 27 |
|
|
| 28 |
@Override |
|
| 29 |
protected void createFieldEditors() {
|
|
| 30 |
fast_highlight = new BooleanFieldEditor(SynopticEditionPreferences.FAST_HIGHLIGHT, |
|
| 31 |
"Enable fast word highlight", getFieldEditorParent()); |
|
| 32 |
addField(fast_highlight); |
|
| 33 |
} |
|
| 34 |
} |
|
| 0 | 35 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferences.java (revision 936) | ||
|---|---|---|
| 1 |
package org.txm.edition.rcp.preferences; |
|
| 2 |
|
|
| 3 |
import org.eclipse.core.runtime.preferences.DefaultScope; |
|
| 4 |
import org.osgi.service.prefs.Preferences; |
|
| 5 |
import org.txm.core.preferences.TXMPreferences; |
|
| 6 |
|
|
| 7 |
public class SynopticEditionPreferences extends TXMPreferences {
|
|
| 8 |
|
|
| 9 |
public static String PREFERENCES_NODE = "org.txm.synopticedition.rcp.synoptic"; |
|
| 10 |
|
|
| 11 |
public static String FAST_HIGHLIGHT = "fast_highlight"; |
|
| 12 |
|
|
| 13 |
@Override |
|
| 14 |
public void initializeDefaultPreferences() {
|
|
| 15 |
Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE); |
|
| 16 |
preferences.putBoolean(FAST_HIGHLIGHT, true); |
|
| 17 |
} |
|
| 18 |
} |
|
| 0 | 19 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/messages/messages.properties (revision 936) | ||
|---|---|---|
| 1 |
|
|
| 2 |
BackToText_0 = Opening with first edition (no default edition set): |
|
| 3 |
BackToText_1 = Aborting: selection is not a concordance line: |
|
| 4 |
BackToText_2 = Aborting: error during selection. |
|
| 5 |
BackToText_3 = Error: could not retrieve line word ids. Aborting back to text. |
|
| 6 |
BackToText_4 = No edition to open. |
|
| 7 |
BackToText_5 = Opening default editions: |
|
| 8 |
|
|
| 9 |
EditionPanel_0 = No edition found for text= |
|
| 10 |
EditionPanel_1 = Fail to retrieve first page of edition |
|
| 11 |
EditionPanel_2 = \ and text |
|
| 12 |
EditionPanel_5 = \ edition= |
|
| 13 |
EditionPanel_6 = No edition with name |
|
| 14 |
EditionPanel_7 = \ available for text |
|
| 15 |
|
|
| 16 |
EditionSelectorDialog_0 = Editions |
|
| 17 |
EditionSelectorDialog_1 = Select one or more editions |
|
| 18 |
|
|
| 19 |
OpenEdition_0 = Opening with first edition (no default edition set): |
|
| 20 |
OpenEdition_1 = No edition to open. |
|
| 21 |
OpenEdition_10 = Error while opening editor: |
|
| 22 |
OpenEdition_3 = Opening default editions: |
|
| 23 |
OpenEdition_4 = Error while opening edition: |
|
| 24 |
OpenEdition_7 = \ in the corpus |
|
| 25 |
OpenEdition_9 = Aborting: selection is not a corpus |
|
| 26 |
|
|
| 27 |
SynopticEditionEditor_0 = First text of the corpus |
|
| 28 |
SynopticEditionEditor_1 = Previous text |
|
| 29 |
SynopticEditionEditor_10 = Next text |
|
| 30 |
SynopticEditionEditor_11 = Last text of the corpus |
|
| 31 |
SynopticEditionEditor_3 = First page of the text |
|
| 32 |
SynopticEditionEditor_4 = Previous page |
|
| 33 |
SynopticEditionEditor_5 = No edition found |
|
| 34 |
SynopticEditionEditor_6 = Error while getting available editions: |
|
| 35 |
SynopticEditionEditor_7 = Next page |
|
| 36 |
SynopticEditionEditor_8 = Last page of the text |
|
| 37 |
SynopticEditionEditor_9 = Warning: could not find edition for name: |
|
| 0 | 38 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/messages/messages_fr.properties (revision 936) | ||
|---|---|---|
| 1 |
|
|
| 2 |
BackToText_0 = Ouverture avec la première édition (pas de défaut) : |
|
| 3 |
BackToText_1 = Abandon : la sélection courante n'est pas une ligne de concordance : |
|
| 4 |
BackToText_2 = Abandon : erreur de sélection |
|
| 5 |
BackToText_3 = Abandon : erreur pendant la récupération des identifiants de mot. |
|
| 6 |
BackToText_4 = Pas d'édition disponible. |
|
| 7 |
BackToText_5 = Ouverture de l'édition par défaut : |
|
| 8 |
|
|
| 9 |
EditionPanel_0 = Pas d'édition trouvée pour le texte : |
|
| 10 |
EditionPanel_1 = échec de la récupération de la première page d'édition |
|
| 11 |
EditionPanel_2 = \ pour le texte |
|
| 12 |
EditionPanel_5 = \ édition= |
|
| 13 |
EditionPanel_6 = Pas d'édition nommée |
|
| 14 |
EditionPanel_7 = \ disponible pour le texte |
|
| 15 |
|
|
| 16 |
EditionSelectorDialog_0 = éditions |
|
| 17 |
EditionSelectorDialog_1 = Sélectionner une ou plusieurs éditions. |
|
| 18 |
|
|
| 19 |
OpenEdition_0 = Ouverture avec la première édition (pas de défaut) : |
|
| 20 |
OpenEdition_1 = Pas d'édition disponible. |
|
| 21 |
OpenEdition_10 = Erreur lors de l'ouverture de l'éditeur : |
|
| 22 |
OpenEdition_3 = Ouverture de l'édition par défaut : |
|
| 23 |
OpenEdition_4 = Erreur lors de l''ouverture de l'édition : |
|
| 24 |
OpenEdition_7 = \ dans le corpus |
|
| 25 |
OpenEdition_9 = Abandon : la sélection n'est pas un corpus |
|
| 26 |
|
|
| 27 |
SynopticEditionEditor_0 = Premier texte du corpus |
|
| 28 |
SynopticEditionEditor_1 = Texte précédent |
|
| 29 |
SynopticEditionEditor_10 = Texte suivant |
|
| 30 |
SynopticEditionEditor_11 = Dernier texte du corpus |
|
| 31 |
SynopticEditionEditor_3 = Première page du texte |
|
| 32 |
SynopticEditionEditor_4 = Page précédente |
|
| 33 |
SynopticEditionEditor_5 = Pas d'édition trouvée |
|
| 34 |
SynopticEditionEditor_6 = Erreur lors de la récupération des éditions disponibles : |
|
| 35 |
SynopticEditionEditor_7 = Page suivante |
|
| 36 |
SynopticEditionEditor_8 = Dernière page du texte |
|
| 37 |
SynopticEditionEditor_9 = Attention: échec de la récupération de l'édition |
|
| 0 | 38 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/messages/SynopticEditionUIMessages.java (revision 936) | ||
|---|---|---|
| 1 |
package org.txm.edition.rcp.messages; |
|
| 2 |
|
|
| 3 |
import org.eclipse.osgi.util.NLS; |
|
| 4 |
import org.txm.utils.messages.Utf8NLS; |
|
| 5 |
|
|
| 6 |
public class SynopticEditionUIMessages extends NLS {
|
|
| 7 |
|
|
| 8 |
public static String BackToText_0; |
|
| 9 |
public static String BackToText_1; |
|
| 10 |
public static String BackToText_2; |
|
| 11 |
public static String BackToText_3; |
|
| 12 |
public static String BackToText_4; |
|
| 13 |
public static String BackToText_5; |
|
| 14 |
public static String EditionPanel_0; |
|
| 15 |
public static String EditionPanel_1; |
|
| 16 |
public static String EditionPanel_2; |
|
| 17 |
public static String EditionPanel_5; |
|
| 18 |
public static String EditionPanel_6; |
|
| 19 |
public static String EditionPanel_7; |
|
| 20 |
public static String EditionSelectorDialog_0; |
|
| 21 |
public static String EditionSelectorDialog_1; |
|
| 22 |
public static String OpenEdition_0; |
|
| 23 |
public static String OpenEdition_1; |
|
| 24 |
public static String OpenEdition_10; |
|
| 25 |
public static String OpenEdition_3; |
|
| 26 |
public static String OpenEdition_4; |
|
| 27 |
public static String OpenEdition_7; |
|
| 28 |
public static String OpenEdition_9; |
|
| 29 |
public static String SynopticEditionEditor_0; |
|
| 30 |
public static String SynopticEditionEditor_1; |
|
| 31 |
public static String SynopticEditionEditor_10; |
|
| 32 |
public static String SynopticEditionEditor_11; |
|
| 33 |
public static String SynopticEditionEditor_3; |
|
| 34 |
public static String SynopticEditionEditor_4; |
|
| 35 |
public static String SynopticEditionEditor_5; |
|
| 36 |
public static String SynopticEditionEditor_6; |
|
| 37 |
public static String SynopticEditionEditor_7; |
|
| 38 |
public static String SynopticEditionEditor_8; |
|
| 39 |
public static String SynopticEditionEditor_9; |
|
| 40 |
|
|
| 41 |
static {
|
|
| 42 |
// initialize resource bundle |
|
| 43 |
Utf8NLS.initializeMessages(SynopticEditionUIMessages.class); |
|
| 44 |
} |
|
| 45 |
|
|
| 46 |
private SynopticEditionUIMessages() {
|
|
| 47 |
} |
|
| 48 |
} |
|
| 0 | 49 | |
| tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java (revision 936) | ||
|---|---|---|
| 1 |
package org.txm.edition.rcp.editors; |
|
| 2 |
|
|
| 3 |
import java.io.File; |
|
| 4 |
import java.net.URL; |
|
| 5 |
import java.util.ArrayList; |
|
| 6 |
import java.util.Arrays; |
|
| 7 |
import java.util.Collection; |
|
| 8 |
import java.util.HashMap; |
|
| 9 |
import java.util.HashSet; |
|
| 10 |
import java.util.List; |
|
| 11 |
import java.util.Set; |
|
| 12 |
import java.util.logging.Level; |
|
| 13 |
|
|
| 14 |
import org.eclipse.core.commands.Command; |
|
| 15 |
import org.eclipse.core.commands.ExecutionException; |
|
| 16 |
import org.eclipse.core.commands.IParameter; |
|
| 17 |
import org.eclipse.core.commands.NotEnabledException; |
|
| 18 |
import org.eclipse.core.commands.NotHandledException; |
|
| 19 |
import org.eclipse.core.commands.Parameterization; |
|
| 20 |
import org.eclipse.core.commands.ParameterizedCommand; |
|
| 21 |
import org.eclipse.core.commands.common.NotDefinedException; |
|
| 22 |
import org.eclipse.core.runtime.FileLocator; |
|
| 23 |
import org.eclipse.core.runtime.Platform; |
|
| 24 |
import org.eclipse.jface.action.MenuManager; |
|
| 25 |
import org.eclipse.jface.text.ITextSelection; |
|
| 26 |
import org.eclipse.jface.viewers.ISelection; |
|
| 27 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
|
| 28 |
import org.eclipse.jface.viewers.ISelectionProvider; |
|
| 29 |
import org.eclipse.swt.SWT; |
|
| 30 |
import org.eclipse.swt.browser.Browser; |
|
| 31 |
import org.eclipse.swt.browser.BrowserFunction; |
|
| 32 |
import org.eclipse.swt.browser.ProgressEvent; |
|
| 33 |
import org.eclipse.swt.browser.ProgressListener; |
|
| 34 |
import org.eclipse.swt.events.MenuEvent; |
|
| 35 |
import org.eclipse.swt.events.MenuListener; |
|
| 36 |
import org.eclipse.swt.events.SelectionEvent; |
|
| 37 |
import org.eclipse.swt.events.SelectionListener; |
|
| 38 |
import org.eclipse.swt.widgets.Composite; |
|
| 39 |
import org.eclipse.swt.widgets.Menu; |
|
| 40 |
import org.eclipse.swt.widgets.MenuItem; |
|
| 41 |
import org.eclipse.ui.IWorkbenchWindow; |
|
| 42 |
import org.eclipse.ui.PlatformUI; |
|
| 43 |
import org.eclipse.ui.commands.ICommandService; |
|
| 44 |
import org.eclipse.ui.handlers.IHandlerService; |
|
| 45 |
import org.eclipse.ui.internal.browser.BrowserViewer; |
|
| 46 |
import org.osgi.framework.Bundle; |
|
| 47 |
import org.txm.concordance.rcp.actions.BackToText; |
|
| 48 |
import org.txm.core.preferences.TXMPreferences; |
|
| 49 |
import org.txm.edition.rcp.messages.SynopticEditionUIMessages; |
|
| 50 |
import org.txm.edition.rcp.preferences.SynopticEditionPreferencePage; |
|
| 51 |
import org.txm.edition.rcp.preferences.SynopticEditionPreferences; |
|
| 52 |
import org.txm.objects.Corpus; |
|
| 53 |
import org.txm.objects.Edition; |
|
| 54 |
import org.txm.objects.Page; |
|
| 55 |
import org.txm.objects.Text; |
|
| 56 |
import org.txm.rcp.StatusLine; |
|
| 57 |
import org.txm.rcp.utils.IOClipboard; |
|
| 58 |
import org.txm.utils.io.IOUtils; |
|
| 59 |
import org.txm.utils.logger.Log; |
|
| 60 |
|
|
| 61 |
public class EditionPanel extends BrowserViewer implements ISelectionProvider {
|
|
| 62 |
|
|
| 63 |
|
|
| 64 |
private ProgressListener progresslistener; |
|
| 65 |
// private List<String> wordids; |
|
| 66 |
// private List<String> lineids; |
|
| 67 |
/** The edition. */ |
|
| 68 |
Text currentText; |
|
| 69 |
Edition currentEdition; |
|
| 70 |
Page currentPage; |
|
| 71 |
protected SynopticEditionEditor synopticEditionEditor; |
|
| 72 |
private ISelectionProvider selProvider; |
|
| 73 |
private MenuManager menuManager; |
|
| 74 |
|
|
| 75 |
private HashSet<int[]> highlightedAreas = null; |
|
| 76 |
|
|
| 77 |
//HashMap<String, ArrayList<RGBA>> highlightedColorSpans = new HashMap<String, ArrayList<RGBA>>(); // background color |
|
| 78 |
|
|
| 79 |
HashMap<String, ArrayList<RGBA>> highlightedColorPerWordIDS = new HashMap<String, ArrayList<RGBA>>(); // background color |
|
| 80 |
public static final String STYLE_NORMAL = "normal"; |
|
| 81 |
public static final String STYLE_ITALIC = "italic"; |
|
| 82 |
public static final String STYLE_OBLIQUE = "oblique"; |
|
| 83 |
HashMap<String, String> fontStylePerWordIDS = new HashMap<String, String>(); |
|
| 84 |
public static final String WEIGHT_NORMAL = "normal"; |
|
| 85 |
public static final String WEIGHT_BOLD = "bold"; |
|
| 86 |
HashMap<String, String> fontWeightPerWordIDS = new HashMap<String, String>(); |
|
| 87 |
HashMap<String, ArrayList<RGBA>> fontColorPerWordIDS = new HashMap<String, ArrayList<RGBA>>(); |
|
| 88 |
public static final String SIZE_SMALL = "small"; |
|
| 89 |
public static final String SIZE_MEDIUM = "medium"; |
|
| 90 |
public static final String SIZE_LARGE = "larger"; |
|
| 91 |
public static final String SIZE_SMALLER = "smaller"; |
|
| 92 |
public static final String SIZE_LARGER = "larger"; |
|
| 93 |
HashMap<String, String> fontSizePerWordIDS = new HashMap<String, String>(); |
|
| 94 |
public static final String FAMILLY_TIMES = "\"Times New Roman\", Times"; |
|
| 95 |
public static final String FAMILLY_ARIAL = "Arial"; |
|
| 96 |
public static final String FAMILLY_COURIER = "\"Courier New\", Courier"; |
|
| 97 |
HashMap<String, String> fontFamillyPerWordIDS = new HashMap<String, String>(); |
|
| 98 |
public static final String VARIANT_NORMAL = "normal"; |
|
| 99 |
public static final String VARIANT_SMALLCAPS = "small-caps"; |
|
| 100 |
HashMap<String, String> fontVariantPerWordIDS = new HashMap<String, String>(); |
|
| 101 |
String focusedWordID = null; |
|
| 102 |
|
|
| 103 |
public static final String highlightscript = "try { var elt = document.getElementById(\"%s\");" + //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 104 |
"elt.style.backgroundColor=\"rgb(%s,%s,%s)\";" + //$NON-NLS-1$ |
|
| 105 |
//"elt.style.paddingLeft=\"3px\";" + //$NON-NLS-1$ |
|
| 106 |
//"elt.style.paddingRight=\"3px\";" + //$NON-NLS-1$ |
|
| 107 |
//"elt.style.paddingTop=\"1px\";" + //$NON-NLS-1$ |
|
| 108 |
//"elt.style.paddingBottom=\"1px\";" + //$NON-NLS-1$ |
|
| 109 |
"} catch (e) { };"; //$NON-NLS-1$
|
|
| 110 |
public static final String highlightscriptRuleFast = "sheet.insertRule(\"#%s {background-color:rgba(%s,%s,%s,%s);}\", 0);";
|
|
| 111 |
public static final String colorscriptRuleFast = "sheet.insertRule(\"#%s {color:rgba(%s,%s,%s,%s);}\", 0);";
|
|
| 112 |
public static final String sizescriptRuleFast = "sheet.insertRule(\"#%s {font-size:%s;}\", 0);";
|
|
| 113 |
public static final String stylescriptRuleFast = "sheet.insertRule(\"#%s {font-style:%s;}\", 0);";
|
|
| 114 |
public static final String variantscriptRuleFast = "sheet.insertRule(\"#%s {font-variant:%s;}\", 0);";
|
|
| 115 |
public static final String famillyscriptRuleFast = "sheet.insertRule(\"#%s {font-familly:%s;}\", 0);";
|
|
| 116 |
public static final String weightscriptRuleFast = "sheet.insertRule(\"#%s {font-weight:%s;}\", 0);";
|
|
| 117 |
|
|
| 118 |
public static final String highlightscriptRule = "sheet.insertRule(\"span[id=\\\"%s\\\"] {background-color:rgba(%s,%s,%s,%s); }\", 0);";
|
|
| 119 |
|
|
| 120 |
public static final String clearhighlightscript = "try { var elt = document.getElementById(\"%s\"); elt.style.backgroundColor=\"white\";elt.style.fontWeight=\"\";" + //$NON-NLS-1$
|
|
| 121 |
"} catch (e) { };"; //$NON-NLS-1$
|
|
| 122 |
|
|
| 123 |
public String functions = |
|
| 124 |
""//"alert(\"loading functions\");" |
|
| 125 |
+"\nfunction getNodeText(node) {"
|
|
| 126 |
+"\n if (typeof node == 'string') return node;" |
|
| 127 |
+"\n else if (typeof node.innerText != 'undefined') return node.innerText;" |
|
| 128 |
+"\n else if (typeof node.InnerText != 'undefined') return node.InnerText;" |
|
| 129 |
+"\n else if (typeof node.textContent != 'undefined') return node.textContent;" |
|
| 130 |
+"\n else return null;" |
|
| 131 |
+"\n}" |
|
| 132 |
+"\nfunction txmGetParent(node) {"
|
|
| 133 |
+"\n if (typeof node.parentNode != 'undefined') return node.parentNode;" |
|
| 134 |
+"\n else return null;" |
|
| 135 |
+"\n}" |
|
| 136 |
+"\nfunction txmGetChildren(node) {"
|
|
| 137 |
+"\n if (typeof node == 'string') return 'STRING HTML';" |
|
| 138 |
+"\n else if (typeof node.children != 'undefined') return node.children;" |
|
| 139 |
+"\n else if (typeof node.ChildNodes != 'undefined') return node.ChildNodes;" |
|
| 140 |
+"\n else if (typeof node.childNodes != 'undefined') return node.childNodes;" |
|
| 141 |
+"\n else return null;" |
|
| 142 |
+"\n}" |
|
| 143 |
+"\nfunction txmGetSelection() {"
|
|
| 144 |
+"\n if (typeof window.getSelection != 'undefined') {return window.getSelection();}"
|
|
| 145 |
+"\n else if (typeof document.selection != 'undefined') { return document.selection;}"
|
|
| 146 |
+"\n else return 'NO SELECTION';" |
|
| 147 |
+"\n}" |
|
| 148 |
+"\nfunction txmGetRangeSize(selection) {"
|
|
| 149 |
+"\n if (typeof selection.rangeCount != 'undefined') {return selection.rangeCount;}"
|
|
| 150 |
+"\n else if (typeof selection.createRangeCollection != 'undefined') { return selection.createRangeCollection().length();} // IE5 has no multiple selection"
|
|
| 151 |
+"\n}" |
|
| 152 |
+"\nfunction txmGetRange(selection, i) {"
|
|
| 153 |
+"\n if (typeof selection.getRangeAt != 'undefined') {return selection.getRangeAt(i);}"
|
|
| 154 |
+"\n else if (typeof selection.createRangeCollection != 'undefined') {return selection.createRangeCollection().item(i);}" // IE > IE5
|
|
| 155 |
+"\n else if (typeof selection.createRange != 'undefined') { return selection.createRange();} // IE5 has no multiple selection"
|
|
| 156 |
+"\n else return 'NO RANGE';" |
|
| 157 |
+"\n}" |
|
| 158 |
+"\nfunction txmGetParentElementRange(range) {"
|
|
| 159 |
+"\n if (typeof range.parentElement != 'undefined') {return range.parentElement();}"
|
|
| 160 |
+"\n else if (typeof range.startContainer != 'undefined') { return range.startContainer.parentNode;}"
|
|
| 161 |
+"\n else return 'NO PARENT';" |
|
| 162 |
+"\n}" |
|
| 163 |
+"\nfunction txmGetFragment(range) {"
|
|
| 164 |
+"\n if (typeof range.cloneContents != 'undefined') { return range.cloneContents();}"
|
|
| 165 |
+"\n else if (typeof range.htmlText != 'undefined') {var node = document.createElement('sel'); node.innerHTML = range.htmlText; return node;"
|
|
| 166 |
+"\n } else return 'NO FRAG';" |
|
| 167 |
+"\n}" |
|
| 168 |
+"\nfunction txmGetTagName(node) {"
|
|
| 169 |
+"\n if (typeof node.tagName != 'undefined') {return node.tagName;}"
|
|
| 170 |
+"\n else if (typeof node.nodeName != 'undefined') { return node.nodeName;}"
|
|
Formats disponibles : Unified diff