Révision 1513
| tmp/org.txm.index.core/src/org/txm/index/core/functions/Index.java (revision 1513) | ||
|---|---|---|
| 156 | 156 |
public Index(String parametersNodePath) {
|
| 157 | 157 |
super(parametersNodePath); |
| 158 | 158 |
} |
| 159 |
|
|
| 160 |
/** |
|
| 161 |
* |
|
| 162 |
* @param parametersNodePath |
|
| 163 |
*/ |
|
| 164 |
public Index(String parametersNodePath, TXMResult parent) {
|
|
| 165 |
super(parametersNodePath, parent); |
|
| 166 |
} |
|
| 159 | 167 |
|
| 160 | 168 |
|
| 161 | 169 |
@Override |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResult.java (revision 1513) | ||
|---|---|---|
| 53 | 53 |
import org.txm.rcp.utils.JobHandler; |
| 54 | 54 |
/** |
| 55 | 55 |
* Exports a result by calling the function toTxt(File f) then opens or not the result in the text editor according to the preferences. |
| 56 |
* @author mdecorde |
|
| 56 |
* @author mdecorde, sjacquot
|
|
| 57 | 57 |
*/ |
| 58 | 58 |
public class ExportResult extends AbstractHandler {
|
| 59 | 59 |
|
| ... | ... | |
| 157 | 157 |
System.out.println(NLS.bind(TXMUIMessages.failedToExportResultP0ColonP1, outfile.getAbsolutePath())); |
| 158 | 158 |
} |
| 159 | 159 |
} catch (ThreadDeath td) {
|
| 160 |
if (s instanceof TXMResult) |
|
| 161 |
((TXMResult)s).clean(); |
|
| 162 | 160 |
return Status.CANCEL_STATUS; |
| 163 | 161 |
} catch (Exception e) {
|
| 164 | 162 |
System.out.println(NLS.bind(TXMUIMessages.failedToExportResultP0ColonP1, s, e)); |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResultParameters.java (revision 1513) | ||
|---|---|---|
| 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.rcp.handlers.export; |
|
| 29 |
|
|
| 30 |
import java.io.File; |
|
| 31 |
import java.io.IOException; |
|
| 32 |
|
|
| 33 |
import org.eclipse.core.commands.AbstractHandler; |
|
| 34 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 35 |
import org.eclipse.core.commands.ExecutionException; |
|
| 36 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
| 37 |
import org.eclipse.core.runtime.IStatus; |
|
| 38 |
import org.eclipse.core.runtime.Status; |
|
| 39 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 40 |
import org.eclipse.osgi.util.NLS; |
|
| 41 |
import org.eclipse.swt.SWT; |
|
| 42 |
import org.eclipse.swt.widgets.FileDialog; |
|
| 43 |
import org.eclipse.swt.widgets.Shell; |
|
| 44 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
| 45 |
import org.txm.core.preferences.TBXPreferences; |
|
| 46 |
import org.txm.core.preferences.TXMPreferences; |
|
| 47 |
import org.txm.core.results.TXMResult; |
|
| 48 |
import org.txm.rcp.JobsTimer; |
|
| 49 |
import org.txm.rcp.StatusLine; |
|
| 50 |
import org.txm.rcp.handlers.files.EditFile; |
|
| 51 |
import org.txm.rcp.messages.TXMUIMessages; |
|
| 52 |
import org.txm.rcp.swt.dialog.LastOpened; |
|
| 53 |
import org.txm.rcp.utils.JobHandler; |
|
| 54 |
// TODO: Auto-generated Javadoc |
|
| 55 |
/** |
|
| 56 |
* export a result of a result by calling the function toTxt(File f) then show |
|
| 57 |
* the result in the text editor @ author mdecorde. |
|
| 58 |
*/ |
|
| 59 |
public class ExportResultParameters extends AbstractHandler {
|
|
| 60 |
|
|
| 61 |
private static final String ID = ExportResultParameters.class.getName(); |
|
| 62 |
|
|
| 63 |
/** |
|
| 64 |
* Export a TXM result parameters in the preferences format |
|
| 65 |
* |
|
| 66 |
* @param event the event |
|
| 67 |
* @return the object |
|
| 68 |
* @throws ExecutionException the execution exception |
|
| 69 |
*/ |
|
| 70 |
@Override |
|
| 71 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
|
| 72 |
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); |
|
| 73 |
final Object s = selection.getFirstElement(); |
|
| 74 |
if (!(s instanceof TXMResult)) {
|
|
| 75 |
return null; |
|
| 76 |
} |
|
| 77 |
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell(); |
|
| 78 |
|
|
| 79 |
//String txmhome = Toolbox.getTxmHomePath(); |
|
| 80 |
FileDialog dialog = new FileDialog(shell, SWT.SAVE); |
|
| 81 |
|
|
| 82 |
String extensions[] = {"*.parameters"}; //$NON-NLS-1$
|
|
| 83 |
dialog.setFilterExtensions(extensions); |
|
| 84 |
|
|
| 85 |
if (LastOpened.getFile(ID) != null) {
|
|
| 86 |
dialog.setFilterPath(LastOpened.getFolder(ID)); |
|
| 87 |
} |
|
| 88 |
|
|
| 89 |
if (dialog.open() != null) {
|
|
| 90 |
StatusLine.setMessage(TXMUIMessages.exportingResults); |
|
| 91 |
String filepath = dialog.getFilterPath() |
|
| 92 |
+ "/" + dialog.getFileName(); //$NON-NLS-1$ |
|
| 93 |
if (!(filepath.endsWith(extensions[0].substring(1)))) |
|
| 94 |
filepath += extensions[0].substring(1); |
|
| 95 |
|
|
| 96 |
final File outfile = new File(filepath); |
|
| 97 |
LastOpened.set(ID, outfile.getParent(), outfile.getName()); |
|
| 98 |
try {
|
|
| 99 |
outfile.createNewFile(); |
|
| 100 |
} catch (IOException e1) {
|
|
| 101 |
System.err.println(NLS.bind(TXMUIMessages.exportColonCantCreateFileP0ColonP1, outfile, e1)); |
|
| 102 |
} |
|
| 103 |
if (!outfile.canWrite()) {
|
|
| 104 |
System.out.println(NLS.bind(TXMUIMessages.impossibleToReadP0, outfile)); |
|
| 105 |
return null; |
|
| 106 |
} |
|
| 107 |
if (!outfile.isFile()) {
|
|
| 108 |
System.out.println("Error: " + outfile + " is not a file"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 109 |
return null; |
|
| 110 |
} |
|
| 111 |
|
|
| 112 |
JobHandler jobhandler = new JobHandler(TXMUIMessages.exportingResults) {
|
|
| 113 |
@Override |
|
| 114 |
protected IStatus run(IProgressMonitor monitor) {
|
|
| 115 |
try {
|
|
| 116 |
this.runInit(monitor); |
|
| 117 |
monitor.beginTask(TXMUIMessages.exporting, 100); |
|
| 118 |
|
|
| 119 |
TXMResult r = (TXMResult)s; |
|
| 120 |
if (r.isAltered()) {
|
|
| 121 |
System.out.println("Warning: only parameters are exported, manual changes are not transfered.");
|
|
| 122 |
} else {
|
|
| 123 |
r.compute(this); // refresh result |
|
| 124 |
} |
|
| 125 |
r.setCurrentMonitor(this); // Allows Functions to protect themselves from interruption |
|
| 126 |
if (r.toParametersFile(outfile)) {
|
|
| 127 |
System.out.println(NLS.bind("Parameters exported to the {0} file.", outfile));
|
|
| 128 |
} |
|
| 129 |
|
|
| 130 |
if (outfile.exists()) {
|
|
| 131 |
// Open internal editor in the UI thread |
|
| 132 |
if(TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPORT_SHOW)) {
|
|
| 133 |
this.syncExec(new Runnable() {
|
|
| 134 |
@Override |
|
| 135 |
public void run() {
|
|
| 136 |
EditFile.openfile(outfile.getAbsolutePath()); |
|
| 137 |
} |
|
| 138 |
}); |
|
| 139 |
} |
|
| 140 |
|
|
| 141 |
System.out.println(NLS.bind("", outfile.getAbsolutePath())); //$NON-NLS-1$
|
|
| 142 |
} else {
|
|
| 143 |
System.out.println(NLS.bind(TXMUIMessages.failedToExportResultP0ColonP1, outfile.getAbsolutePath())); |
|
| 144 |
} |
|
| 145 |
} catch (ThreadDeath td) {
|
|
| 146 |
if (s instanceof TXMResult) |
|
| 147 |
((TXMResult)s).clean(); |
|
| 148 |
return Status.CANCEL_STATUS; |
|
| 149 |
} catch (Exception e) {
|
|
| 150 |
System.out.println(NLS.bind(TXMUIMessages.failedToExportResultP0ColonP1, s, e)); |
|
| 151 |
org.txm.rcp.utils.Logger.printStackTrace(e); |
|
| 152 |
return Status.CANCEL_STATUS; |
|
| 153 |
} finally {
|
|
| 154 |
if (s instanceof TXMResult) |
|
| 155 |
((TXMResult)s).setCurrentMonitor(null); |
|
| 156 |
monitor.done(); |
|
| 157 |
JobsTimer.stopAndPrint(); |
|
| 158 |
} |
|
| 159 |
return Status.OK_STATUS; |
|
| 160 |
} |
|
| 161 |
}; |
|
| 162 |
|
|
| 163 |
jobhandler.startJob(); |
|
| 164 |
} |
|
| 165 |
return null; |
|
| 166 |
} |
|
| 167 |
} |
|
| 0 | 168 | |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ImportResult.java (revision 1513) | ||
|---|---|---|
| 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.rcp.handlers.export; |
|
| 29 |
|
|
| 30 |
import java.io.File; |
|
| 31 |
import java.io.IOException; |
|
| 32 |
|
|
| 33 |
import org.eclipse.core.commands.AbstractHandler; |
|
| 34 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 35 |
import org.eclipse.core.commands.ExecutionException; |
|
| 36 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
| 37 |
import org.eclipse.core.runtime.IStatus; |
|
| 38 |
import org.eclipse.core.runtime.Status; |
|
| 39 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 40 |
import org.eclipse.osgi.util.NLS; |
|
| 41 |
import org.eclipse.swt.SWT; |
|
| 42 |
import org.eclipse.swt.widgets.FileDialog; |
|
| 43 |
import org.eclipse.swt.widgets.Shell; |
|
| 44 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
| 45 |
import org.txm.core.preferences.TBXPreferences; |
|
| 46 |
import org.txm.core.preferences.TXMPreferences; |
|
| 47 |
import org.txm.core.results.TXMResult; |
|
| 48 |
import org.txm.rcp.JobsTimer; |
|
| 49 |
import org.txm.rcp.StatusLine; |
|
| 50 |
import org.txm.rcp.handlers.files.EditFile; |
|
| 51 |
import org.txm.rcp.messages.TXMUIMessages; |
|
| 52 |
import org.txm.rcp.swt.dialog.LastOpened; |
|
| 53 |
import org.txm.rcp.utils.JobHandler; |
|
| 54 |
import org.txm.rcp.views.corpora.CorporaView; |
|
| 55 |
// TODO: Auto-generated Javadoc |
|
| 56 |
/** |
|
| 57 |
* export a result of a result by calling the function toTxt(File f) then show |
|
| 58 |
* the result in the text editor @ author mdecorde. |
|
| 59 |
*/ |
|
| 60 |
public class ImportResult extends AbstractHandler {
|
|
| 61 |
|
|
| 62 |
private static final String ID = ImportResult.class.getName(); |
|
| 63 |
|
|
| 64 |
/** |
|
| 65 |
* Export a TXM result parameters in the preferences format |
|
| 66 |
* |
|
| 67 |
* @param event the event |
|
| 68 |
* @return the object |
|
| 69 |
* @throws ExecutionException the execution exception |
|
| 70 |
*/ |
|
| 71 |
@Override |
|
| 72 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
|
| 73 |
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); |
|
| 74 |
final Object s = selection.getFirstElement(); |
|
| 75 |
if (!(s instanceof TXMResult)) {
|
|
| 76 |
return null; |
|
| 77 |
} |
|
| 78 |
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell(); |
|
| 79 |
|
|
| 80 |
//String txmhome = Toolbox.getTxmHomePath(); |
|
| 81 |
FileDialog dialog = new FileDialog(shell, SWT.OPEN); |
|
| 82 |
|
|
| 83 |
String extensions[] = {"*.parameters"}; //$NON-NLS-1$
|
|
| 84 |
dialog.setFilterExtensions(extensions); |
|
| 85 |
|
|
| 86 |
if (LastOpened.getFile(ID) != null) {
|
|
| 87 |
dialog.setFilterPath(LastOpened.getFolder(ID)); |
|
| 88 |
} |
|
| 89 |
|
|
| 90 |
if (dialog.open() != null) {
|
|
| 91 |
StatusLine.setMessage(TXMUIMessages.exportingResults); |
|
| 92 |
String filepath = dialog.getFilterPath() |
|
| 93 |
+ "/" + dialog.getFileName(); //$NON-NLS-1$ |
|
| 94 |
if (!(filepath.endsWith(extensions[0].substring(1)))) |
|
| 95 |
filepath += extensions[0].substring(1); |
|
| 96 |
|
|
| 97 |
final File outfile = new File(filepath); |
|
| 98 |
LastOpened.set(ID, outfile.getParent(), outfile.getName()); |
|
| 99 |
try {
|
|
| 100 |
outfile.createNewFile(); |
|
| 101 |
} catch (IOException e1) {
|
|
| 102 |
System.err.println(NLS.bind(TXMUIMessages.exportColonCantCreateFileP0ColonP1, outfile, e1)); |
|
| 103 |
} |
|
| 104 |
if (!outfile.canWrite()) {
|
|
| 105 |
System.out.println(NLS.bind(TXMUIMessages.impossibleToReadP0, outfile)); |
|
| 106 |
return null; |
|
| 107 |
} |
|
| 108 |
if (!outfile.isFile()) {
|
|
| 109 |
System.out.println("Error: " + outfile + " is not a file"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 110 |
return null; |
|
| 111 |
} |
|
| 112 |
|
|
| 113 |
JobHandler jobhandler = new JobHandler(TXMUIMessages.exportingResults) {
|
|
| 114 |
@Override |
|
| 115 |
protected IStatus run(IProgressMonitor monitor) {
|
|
| 116 |
try {
|
|
| 117 |
this.runInit(monitor); |
|
| 118 |
monitor.beginTask(TXMUIMessages.exporting, 100); |
|
| 119 |
|
|
| 120 |
TXMResult parent = (TXMResult)s; |
|
| 121 |
TXMResult r = parent.importResult(outfile); |
|
| 122 |
CorporaView.refreshObject(r); |
|
| 123 |
if (r != null) {
|
|
| 124 |
System.out.println(NLS.bind("{0} result imported from the {0} file.", r, outfile));
|
|
| 125 |
} |
|
| 126 |
} catch (ThreadDeath td) {
|
|
| 127 |
return Status.CANCEL_STATUS; |
|
| 128 |
} catch (Exception e) {
|
|
| 129 |
System.out.println(NLS.bind(TXMUIMessages.failedToExportResultP0ColonP1, s, e)); |
|
| 130 |
org.txm.rcp.utils.Logger.printStackTrace(e); |
|
| 131 |
return Status.CANCEL_STATUS; |
|
| 132 |
} finally {
|
|
| 133 |
if (s instanceof TXMResult) |
|
| 134 |
((TXMResult)s).setCurrentMonitor(null); |
|
| 135 |
monitor.done(); |
|
| 136 |
JobsTimer.stopAndPrint(); |
|
| 137 |
} |
|
| 138 |
return Status.OK_STATUS; |
|
| 139 |
} |
|
| 140 |
}; |
|
| 141 |
|
|
| 142 |
jobhandler.startJob(); |
|
| 143 |
} |
|
| 144 |
return null; |
|
| 145 |
} |
|
| 146 |
} |
|
| 0 | 147 | |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ImportResultParameters.java (revision 1513) | ||
|---|---|---|
| 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.rcp.handlers.export; |
|
| 29 |
|
|
| 30 |
import java.io.File; |
|
| 31 |
import java.io.IOException; |
|
| 32 |
|
|
| 33 |
import org.eclipse.core.commands.AbstractHandler; |
|
| 34 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 35 |
import org.eclipse.core.commands.ExecutionException; |
|
| 36 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
| 37 |
import org.eclipse.core.runtime.IStatus; |
|
| 38 |
import org.eclipse.core.runtime.Status; |
|
| 39 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 40 |
import org.eclipse.osgi.util.NLS; |
|
| 41 |
import org.eclipse.swt.SWT; |
|
| 42 |
import org.eclipse.swt.widgets.FileDialog; |
|
| 43 |
import org.eclipse.swt.widgets.Shell; |
|
| 44 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
| 45 |
import org.txm.core.preferences.TBXPreferences; |
|
| 46 |
import org.txm.core.preferences.TXMPreferences; |
|
| 47 |
import org.txm.core.results.TXMResult; |
|
| 48 |
import org.txm.rcp.JobsTimer; |
|
| 49 |
import org.txm.rcp.StatusLine; |
|
| 50 |
import org.txm.rcp.editors.TXMEditor; |
|
| 51 |
import org.txm.rcp.handlers.files.EditFile; |
|
| 52 |
import org.txm.rcp.messages.TXMUIMessages; |
|
| 53 |
import org.txm.rcp.swt.dialog.LastOpened; |
|
| 54 |
import org.txm.rcp.utils.JobHandler; |
|
| 55 |
import org.txm.rcp.utils.SWTEditorsUtils; |
|
| 56 |
import org.txm.rcp.views.corpora.CorporaView; |
|
| 57 |
// TODO: Auto-generated Javadoc |
|
| 58 |
/** |
|
| 59 |
* export a result of a result by calling the function toTxt(File f) then show |
|
| 60 |
* the result in the text editor @ author mdecorde. |
|
| 61 |
*/ |
|
| 62 |
public class ImportResultParameters extends AbstractHandler {
|
|
| 63 |
|
|
| 64 |
private static final String ID = ImportResultParameters.class.getName(); |
|
| 65 |
|
|
| 66 |
/** |
|
| 67 |
* Export a TXM result parameters in the preferences format |
|
| 68 |
* |
|
| 69 |
* @param event the event |
|
| 70 |
* @return the object |
|
| 71 |
* @throws ExecutionException the execution exception |
|
| 72 |
*/ |
|
| 73 |
@Override |
|
| 74 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
|
| 75 |
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); |
|
| 76 |
final Object s = selection.getFirstElement(); |
|
| 77 |
if (!(s instanceof TXMResult)) {
|
|
| 78 |
return null; |
|
| 79 |
} |
|
| 80 |
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell(); |
|
| 81 |
|
|
| 82 |
//String txmhome = Toolbox.getTxmHomePath(); |
|
| 83 |
FileDialog dialog = new FileDialog(shell, SWT.OPEN); |
|
| 84 |
|
|
| 85 |
String extensions[] = {"*.parameters"}; //$NON-NLS-1$
|
|
| 86 |
dialog.setFilterExtensions(extensions); |
|
| 87 |
|
|
| 88 |
if (LastOpened.getFile(ID) != null) {
|
|
| 89 |
dialog.setFilterPath(LastOpened.getFolder(ID)); |
|
| 90 |
} |
|
| 91 |
|
|
| 92 |
if (dialog.open() != null) {
|
|
| 93 |
StatusLine.setMessage(TXMUIMessages.exportingResults); |
|
| 94 |
String filepath = dialog.getFilterPath() |
|
| 95 |
+ "/" + dialog.getFileName(); //$NON-NLS-1$ |
|
| 96 |
if (!(filepath.endsWith(extensions[0].substring(1)))) |
|
| 97 |
filepath += extensions[0].substring(1); |
|
| 98 |
|
|
| 99 |
final File outfile = new File(filepath); |
|
| 100 |
LastOpened.set(ID, outfile.getParent(), outfile.getName()); |
|
| 101 |
try {
|
|
| 102 |
outfile.createNewFile(); |
|
| 103 |
} catch (IOException e1) {
|
|
| 104 |
System.err.println(NLS.bind(TXMUIMessages.exportColonCantCreateFileP0ColonP1, outfile, e1)); |
|
| 105 |
} |
|
| 106 |
if (!outfile.canWrite()) {
|
|
| 107 |
System.out.println(NLS.bind(TXMUIMessages.impossibleToReadP0, outfile)); |
|
| 108 |
return null; |
|
| 109 |
} |
|
| 110 |
if (!outfile.isFile()) {
|
|
| 111 |
System.out.println("Error: " + outfile + " is not a file"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 112 |
return null; |
|
| 113 |
} |
|
| 114 |
|
|
| 115 |
JobHandler jobhandler = new JobHandler(TXMUIMessages.exportingResults) {
|
|
| 116 |
@Override |
|
| 117 |
protected IStatus run(IProgressMonitor monitor) {
|
|
| 118 |
try {
|
|
| 119 |
this.runInit(monitor); |
|
| 120 |
monitor.beginTask(TXMUIMessages.exporting, 100); |
|
| 121 |
|
|
| 122 |
TXMResult r = (TXMResult)s; |
|
| 123 |
if (r.importParameters(outfile)) {
|
|
| 124 |
r.setDirty(); |
|
| 125 |
CorporaView.refreshObject(r); |
|
| 126 |
System.out.println(NLS.bind("Parameter imported from the {0} file.", outfile));
|
|
| 127 |
SWTEditorsUtils.refreshEditor(r); |
|
| 128 |
} |
|
| 129 |
} catch (ThreadDeath td) {
|
|
| 130 |
return Status.CANCEL_STATUS; |
|
| 131 |
} catch (Exception e) {
|
|
| 132 |
System.out.println(NLS.bind(TXMUIMessages.failedToExportResultP0ColonP1, s, e)); |
|
| 133 |
org.txm.rcp.utils.Logger.printStackTrace(e); |
|
| 134 |
return Status.CANCEL_STATUS; |
|
| 135 |
} finally {
|
|
| 136 |
if (s instanceof TXMResult) |
|
| 137 |
((TXMResult)s).setCurrentMonitor(null); |
|
| 138 |
monitor.done(); |
|
| 139 |
JobsTimer.stopAndPrint(); |
|
| 140 |
} |
|
| 141 |
return Status.OK_STATUS; |
|
| 142 |
} |
|
| 143 |
}; |
|
| 144 |
|
|
| 145 |
jobhandler.startJob(); |
|
| 146 |
} |
|
| 147 |
return null; |
|
| 148 |
} |
|
| 149 |
} |
|
| 0 | 150 | |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/utils/SWTEditorsUtils.java (revision 1513) | ||
|---|---|---|
| 34 | 34 |
* |
| 35 | 35 |
*/ |
| 36 | 36 |
public class SWTEditorsUtils {
|
| 37 |
|
|
| 38 |
|
|
| 37 |
|
|
| 38 |
|
|
| 39 | 39 |
/** |
| 40 | 40 |
* Gets an editor for the specified result if its opened. |
| 41 | 41 |
* @param result the result used by the editor to find |
| ... | ... | |
| 43 | 43 |
*/ |
| 44 | 44 |
public static IEditorPart getEditor(TXMResult result) {
|
| 45 | 45 |
|
| 46 |
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
|
| 47 |
IWorkbenchPage page = window.getActivePage(); |
|
| 48 |
|
|
| 49 |
return page.findEditor(new TXMResultEditorInput<TXMResult>(result)); |
|
| 46 |
for (IWorkbenchWindow window : PlatformUI.getWorkbench().getWorkbenchWindows()) {
|
|
| 47 |
for (IWorkbenchPage page : window.getPages()) {
|
|
| 48 |
return page.findEditor(new TXMResultEditorInput<TXMResult>(result)); |
|
| 49 |
} |
|
| 50 |
} |
|
| 51 |
return null; |
|
| 50 | 52 |
} |
| 51 | 53 |
|
| 52 | 54 |
/** |
| ... | ... | |
| 83 | 85 |
|
| 84 | 86 |
} |
| 85 | 87 |
} |
| 86 |
|
|
| 88 |
|
|
| 87 | 89 |
} |
| 88 | 90 |
} |
| 89 |
|
|
| 91 |
|
|
| 90 | 92 |
return editors; |
| 91 |
|
|
| 93 |
|
|
| 92 | 94 |
} |
| 93 |
|
|
| 95 |
|
|
| 94 | 96 |
/** |
| 95 | 97 |
* Gets the current active editor. |
| 96 | 98 |
* @param event |
| 97 | 99 |
* @return |
| 98 | 100 |
*/ |
| 99 | 101 |
public static TXMEditor getActiveEditor(ExecutionEvent event) {
|
| 100 |
|
|
| 102 |
|
|
| 101 | 103 |
IEditorPart editor = null; |
| 102 |
|
|
| 104 |
|
|
| 103 | 105 |
if(event != null) {
|
| 104 | 106 |
editor = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActiveEditor(); |
| 105 | 107 |
} |
| 106 | 108 |
else {
|
| 107 | 109 |
editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); |
| 108 | 110 |
} |
| 109 |
|
|
| 111 |
|
|
| 110 | 112 |
if(editor instanceof TXMMultiPageEditor) {
|
| 111 | 113 |
editor = ((TXMMultiPageEditor)editor).getMainEditorPart(); |
| 112 |
|
|
| 114 |
|
|
| 113 | 115 |
} |
| 114 |
|
|
| 116 |
|
|
| 115 | 117 |
if(!(editor instanceof TXMEditor)) {
|
| 116 | 118 |
return null; |
| 117 | 119 |
} |
| 118 |
|
|
| 120 |
|
|
| 119 | 121 |
return (TXMEditor)editor; |
| 120 | 122 |
} |
| 121 | 123 |
|
| 122 |
|
|
| 123 |
// // FIXME: SJ: seems useless since page.findEditor() seem to return the multipage editor if a nested editor exists? |
|
| 124 |
// /*** |
|
| 125 |
// * Gets an editor for the specified result if its opened inside a TXMMultiPageEditor. |
|
| 126 |
// * @param result the result used by the editor to find |
|
| 127 |
// * @return the editor if its opened otherwise null |
|
| 128 |
// */ |
|
| 129 |
// public static IEditorPart getEditorInMultiPageEditor(TXMResult result) {
|
|
| 130 |
// |
|
| 131 |
// IEditorPart editor = null; |
|
| 132 |
// |
|
| 133 |
// for (IEditorReference reference : PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences()) {
|
|
| 134 |
// IEditorPart tmpEditor = reference.getEditor(false); |
|
| 135 |
// |
|
| 136 |
// if(tmpEditor instanceof TXMMultiPageEditor) {
|
|
| 137 |
// TXMMultiPageEditor txmMultipageEditor = ((TXMMultiPageEditor)tmpEditor); |
|
| 138 |
// for (int i = 0; i < txmMultipageEditor.getEditors().size(); i++) {
|
|
| 139 |
// if(txmMultipageEditor.getEditors().get(i) instanceof TXMEditor) {
|
|
| 140 |
// TXMEditor txmEditor = ((TXMEditor)txmMultipageEditor.getEditors().get(i)); |
|
| 141 |
// if(txmEditor.getResult() == result) {
|
|
| 142 |
// editor = txmEditor; |
|
| 143 |
// break; |
|
| 144 |
// } |
|
| 145 |
// } |
|
| 146 |
// } |
|
| 147 |
// |
|
| 148 |
// } |
|
| 149 |
// } |
|
| 150 |
// |
|
| 151 |
// return editor; |
|
| 152 |
// } |
|
| 153 |
|
|
| 124 |
|
|
| 125 |
// // FIXME: SJ: seems useless since page.findEditor() seem to return the multipage editor if a nested editor exists?
|
|
| 126 |
// /***
|
|
| 127 |
// * Gets an editor for the specified result if its opened inside a TXMMultiPageEditor.
|
|
| 128 |
// * @param result the result used by the editor to find
|
|
| 129 |
// * @return the editor if its opened otherwise null
|
|
| 130 |
// */
|
|
| 131 |
// public static IEditorPart getEditorInMultiPageEditor(TXMResult result) {
|
|
| 132 |
//
|
|
| 133 |
// IEditorPart editor = null;
|
|
| 134 |
//
|
|
| 135 |
// for (IEditorReference reference : PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences()) {
|
|
| 136 |
// IEditorPart tmpEditor = reference.getEditor(false);
|
|
| 137 |
//
|
|
| 138 |
// if(tmpEditor instanceof TXMMultiPageEditor) {
|
|
| 139 |
// TXMMultiPageEditor txmMultipageEditor = ((TXMMultiPageEditor)tmpEditor);
|
|
| 140 |
// for (int i = 0; i < txmMultipageEditor.getEditors().size(); i++) {
|
|
| 141 |
// if(txmMultipageEditor.getEditors().get(i) instanceof TXMEditor) {
|
|
| 142 |
// TXMEditor txmEditor = ((TXMEditor)txmMultipageEditor.getEditors().get(i));
|
|
| 143 |
// if(txmEditor.getResult() == result) {
|
|
| 144 |
// editor = txmEditor;
|
|
| 145 |
// break;
|
|
| 146 |
// }
|
|
| 147 |
// }
|
|
| 148 |
// }
|
|
| 149 |
//
|
|
| 150 |
// }
|
|
| 151 |
// }
|
|
| 152 |
//
|
|
| 153 |
// return editor;
|
|
| 154 |
// }
|
|
| 155 |
|
|
| 154 | 156 |
/** |
| 155 | 157 |
* Checks if the editor specified by its editor input is already open in the active page. |
| 156 | 158 |
* @param editorInput |
| ... | ... | |
| 174 | 176 |
} |
| 175 | 177 |
return null; |
| 176 | 178 |
} |
| 177 |
|
|
| 178 |
// /** |
|
| 179 |
// * Checks if the specified editor is already open in the active page. |
|
| 180 |
// * @param editor |
|
| 181 |
// * @return |
|
| 182 |
// */ |
|
| 183 |
// public static boolean isOpenEditor(EditorPart editor) {
|
|
| 184 |
// return isOpenEditor(editor.getEditorInput()); |
|
| 185 |
// } |
|
| 186 | 179 |
|
| 180 |
// /** |
|
| 181 |
// * Checks if the specified editor is already open in the active page. |
|
| 182 |
// * @param editor |
|
| 183 |
// * @return |
|
| 184 |
// */ |
|
| 185 |
// public static boolean isOpenEditor(EditorPart editor) {
|
|
| 186 |
// return isOpenEditor(editor.getEditorInput()); |
|
| 187 |
// } |
|
| 188 |
|
|
| 187 | 189 |
/** |
| 188 | 190 |
* Splits the parent area of an editor and add another one in this area by splitting it. |
| 189 | 191 |
* (Same behavior than the splitting drag and drop event on editor.) |
| ... | ... | |
| 210 | 212 |
public static void addEditor(EditorPart parentEditor, EditorPart editorToAdd, int position) {
|
| 211 | 213 |
addEditor(parentEditor, editorToAdd, position, 0.5f); |
| 212 | 214 |
} |
| 213 |
|
|
| 215 |
|
|
| 214 | 216 |
/** |
| 215 | 217 |
* Splits the parent area of a part and add another one in this area by splitting it. |
| 216 | 218 |
* (Same behavior than the splitting drag and drop event on editor.) |
| ... | ... | |
| 232 | 234 |
} |
| 233 | 235 |
service.insert(stackToInsert, (MPartSashContainerElement) parent, position, percent); |
| 234 | 236 |
} |
| 235 |
|
|
| 237 |
|
|
| 236 | 238 |
/** |
| 237 | 239 |
* Creates a part stack for the specified part. |
| 238 | 240 |
* @param part |
| ... | ... | |
| 245 | 247 |
stack.setSelectedElement(stackElement); |
| 246 | 248 |
return stack; |
| 247 | 249 |
} |
| 250 |
|
|
| 251 |
/** |
|
| 252 |
* close a TXMEditor from its result |
|
| 253 |
* |
|
| 254 |
* @param r |
|
| 255 |
*/ |
|
| 256 |
public static boolean closeEditor(TXMResult r) {
|
|
| 257 |
IEditorPart e = getEditor(r); |
|
| 258 |
if (e != null && e instanceof TXMEditor && ((TXMEditor)e).getResult() == r) {
|
|
| 259 |
((TXMEditor)e).close(); |
|
| 260 |
return true; |
|
| 261 |
} |
|
| 262 |
return false; |
|
| 263 |
} |
|
| 264 |
|
|
| 265 |
public static boolean refreshEditor(TXMResult r) {
|
|
| 266 |
IEditorPart e = getEditor(r); |
|
| 267 |
if (e != null && e instanceof TXMEditor && ((TXMEditor)e).getResult() == r) {
|
|
| 268 |
try {
|
|
| 269 |
((TXMEditor)e).refresh(true); |
|
| 270 |
return true; |
|
| 271 |
} catch (Exception e1) {
|
|
| 272 |
// TODO Auto-generated catch block |
|
| 273 |
e1.printStackTrace(); |
|
| 274 |
} |
|
| 275 |
} |
|
| 276 |
return false; |
|
| 277 |
} |
|
| 278 |
|
|
| 279 |
public static boolean activateEditor(TXMResult r) {
|
|
| 280 |
IEditorPart e = getEditor(r); |
|
| 281 |
if (e != null && e instanceof TXMEditor && ((TXMEditor)e).getResult() == r) {
|
|
| 282 |
try {
|
|
| 283 |
((TXMEditor)e).getSite().getPage().activate(e); |
|
| 284 |
return true; |
|
| 285 |
} catch (Exception e1) {
|
|
| 286 |
// TODO Auto-generated catch block |
|
| 287 |
e1.printStackTrace(); |
|
| 288 |
} |
|
| 289 |
} |
|
| 290 |
return false; |
|
| 291 |
} |
|
| 248 | 292 |
} |
| tmp/org.txm.rcp/plugin.xml (revision 1513) | ||
|---|---|---|
| 550 | 550 |
style="push"> |
| 551 | 551 |
<visibleWhen |
| 552 | 552 |
checkEnabled="false"> |
| 553 |
<or>
|
|
| 553 |
<and>
|
|
| 554 | 554 |
<reference |
| 555 |
definitionId="OneLexiconSelected">
|
|
| 555 |
definitionId="OneTXMResultSelected">
|
|
| 556 | 556 |
</reference> |
| 557 |
<not> |
|
| 558 |
<or> |
|
| 559 |
<reference |
|
| 560 |
definitionId="OnePartitionSelected"> |
|
| 561 |
</reference> |
|
| 562 |
<reference |
|
| 563 |
definitionId="OneCorpusSelected"> |
|
| 564 |
</reference> |
|
| 565 |
</or> |
|
| 566 |
</not> |
|
| 567 |
</and> |
|
| 568 |
</visibleWhen> |
|
| 569 |
</command> |
|
| 570 |
<command |
|
| 571 |
commandId="org.txm.rcp.handlers.export.ExportResultParameters" |
|
| 572 |
icon="icons/functions/export_parameters.png" |
|
| 573 |
style="push"> |
|
| 574 |
<visibleWhen |
|
| 575 |
checkEnabled="false"> |
|
| 576 |
<and> |
|
| 557 | 577 |
<reference |
| 558 |
definitionId="OneConcordanceSelected"> |
|
| 559 |
</reference> |
|
| 560 |
<reference |
|
| 561 |
definitionId="OneSpecificitiesResultSelected"> |
|
| 562 |
</reference> |
|
| 563 |
<reference |
|
| 564 |
definitionId="OneIndexSelected"> |
|
| 565 |
</reference> |
|
| 566 |
<reference |
|
| 567 |
definitionId="OneCooccurrenceSelected"> |
|
| 568 |
</reference> |
|
| 569 |
<reference |
|
| 570 |
definitionId="OneReferencerSelected"> |
|
| 571 |
</reference> |
|
| 572 |
<reference |
|
| 573 |
definitionId="OneProgressionSelected"> |
|
| 574 |
</reference> |
|
| 575 |
<reference |
|
| 576 |
definitionId="OneLexicalTableSelected"> |
|
| 577 |
</reference> |
|
| 578 |
<reference |
|
| 579 |
definitionId="OneCASelected"> |
|
| 580 |
</reference> |
|
| 581 |
<reference |
|
| 582 |
definitionId="OneCAHSelected"> |
|
| 583 |
</reference> |
|
| 584 |
<reference |
|
| 585 | 578 |
definitionId="OneTXMResultSelected"> |
| 586 | 579 |
</reference> |
| 587 |
</or> |
|
| 580 |
<not> |
|
| 581 |
<or> |
|
| 582 |
<reference |
|
| 583 |
definitionId="OnePartitionSelected"> |
|
| 584 |
</reference> |
|
| 585 |
<reference |
|
| 586 |
definitionId="OneCorpusSelected"> |
|
| 587 |
</reference> |
|
| 588 |
</or> |
|
| 589 |
</not> |
|
| 590 |
</and> |
|
| 588 | 591 |
</visibleWhen> |
| 589 | 592 |
</command> |
| 590 | 593 |
</menu> |
| ... | ... | |
| 690 | 693 |
<menu |
| 691 | 694 |
id="menu.edit" |
| 692 | 695 |
label="%menu.label.3"> |
| 696 |
|
|
| 697 |
<command |
|
| 698 |
commandId="org.txm.rcp.handlers.results.SetTXMResultPersistentState" |
|
| 699 |
mode="FORCE_TEXT" |
|
| 700 |
style="toggle"> |
|
| 701 |
<visibleWhen |
|
| 702 |
checkEnabled="false"> |
|
| 703 |
<and> |
|
| 704 |
<reference |
|
| 705 |
definitionId="OneTXMResultSelected"> |
|
| 706 |
</reference> |
|
| 707 |
<test |
|
| 708 |
property="org.txm.rcp.testers.persistable" |
|
| 709 |
value="true"> |
|
| 710 |
</test> |
|
| 711 |
<test |
|
| 712 |
property="org.txm.rcp.testers.AutoPersistenceDisabled"> |
|
| 713 |
</test> |
|
| 714 |
</and> |
|
| 715 |
</visibleWhen> |
|
| 716 |
</command> |
|
| 693 | 717 |
<command |
| 718 |
commandId="org.txm.rcp.commands.function.RenameResult" |
|
| 719 |
label="%command.label.26" |
|
| 720 |
style="push"> |
|
| 721 |
<visibleWhen |
|
| 722 |
checkEnabled="false"> |
|
| 723 |
<reference |
|
| 724 |
definitionId="OneTXMResultSelected"> |
|
| 725 |
</reference> |
|
| 726 |
</visibleWhen> |
|
| 727 |
</command> |
|
| 728 |
<command |
|
| 729 |
commandId="org.txm.rcp.handlers.results.CloneTXMResult" |
|
| 730 |
label="Clone" |
|
| 731 |
style="push"> |
|
| 732 |
<visibleWhen |
|
| 733 |
checkEnabled="false"> |
|
| 734 |
<and> |
|
| 735 |
<reference |
|
| 736 |
definitionId="OneTXMResultSelected"> |
|
| 737 |
</reference> |
|
| 738 |
<not> |
|
| 739 |
<reference |
|
| 740 |
definitionId="OneMainCorpusSelected"> |
|
| 741 |
</reference> |
|
| 742 |
</not> |
|
| 743 |
</and> |
|
| 744 |
</visibleWhen> |
|
| 745 |
</command> |
|
| 746 |
<command |
|
| 747 |
commandId="org.txm.rcp.handlers.results.CloneTXMResultTree" |
|
| 748 |
label="Clone all" |
|
| 749 |
style="push"> |
|
| 750 |
<visibleWhen |
|
| 751 |
checkEnabled="false"> |
|
| 752 |
<and> |
|
| 753 |
<reference |
|
| 754 |
definitionId="OneTXMResultSelected"> |
|
| 755 |
</reference> |
|
| 756 |
<not> |
|
| 757 |
<reference |
|
| 758 |
definitionId="OneMainCorpusSelected"> |
|
| 759 |
</reference> |
|
| 760 |
</not> |
|
| 761 |
</and> |
|
| 762 |
</visibleWhen> |
|
| 763 |
</command> |
|
| 764 |
<command |
|
| 765 |
commandId="org.txm.rcp.handlers.results.ShowHiddenParents" |
|
| 766 |
label="Show hidden parents" |
|
| 767 |
style="push"> |
|
| 768 |
<visibleWhen |
|
| 769 |
checkEnabled="false"> |
|
| 770 |
<and> |
|
| 771 |
<reference |
|
| 772 |
definitionId="OneTXMResultSelected"> |
|
| 773 |
</reference> |
|
| 774 |
<test |
|
| 775 |
property="org.txm.rcp.testers.IsParentHidden"> |
|
| 776 |
</test> |
|
| 777 |
</and> |
|
| 778 |
</visibleWhen> |
|
| 779 |
</command> |
|
| 780 |
<command |
|
| 781 |
commandId="org.txm.rcp.handlers.results.HideIntermediateParents" |
|
| 782 |
label="Hide intermediate parents" |
|
| 783 |
style="push"> |
|
| 784 |
<visibleWhen |
|
| 785 |
checkEnabled="false"> |
|
| 786 |
<and> |
|
| 787 |
<reference |
|
| 788 |
definitionId="OneTXMResultSelected"> |
|
| 789 |
</reference> |
|
| 790 |
<test |
|
| 791 |
property="org.txm.rcp.testers.IsParentVisible" |
|
| 792 |
value="true"> |
|
| 793 |
</test> |
|
| 794 |
</and> |
|
| 795 |
</visibleWhen> |
|
| 796 |
</command> |
|
| 797 |
<separator |
|
| 798 |
name="org.txm.rcp.separator1"> |
|
| 799 |
</separator> |
|
| 800 |
|
|
| 801 |
<command |
|
| 694 | 802 |
commandId="org.eclipse.ui.edit.findReplace" |
| 695 | 803 |
label="%command.label.15"> |
| 696 | 804 |
<visibleWhen |
| ... | ... | |
| 1267 | 1375 |
<command |
| 1268 | 1376 |
commandId="org.txm.rcp.commands.function.ExportResult" |
| 1269 | 1377 |
icon="icons/functions/export_data.png" |
| 1378 |
label="%command.label.51" |
|
| 1270 | 1379 |
style="push"> |
| 1271 | 1380 |
<visibleWhen |
| 1272 | 1381 |
checkEnabled="false"> |
| 1273 |
<or>
|
|
| 1382 |
<and>
|
|
| 1274 | 1383 |
<reference |
| 1275 |
definitionId="OneLexiconSelected">
|
|
| 1384 |
definitionId="OneTXMResultSelected">
|
|
| 1276 | 1385 |
</reference> |
| 1386 |
<not> |
|
| 1387 |
<or> |
|
| 1388 |
<reference |
|
| 1389 |
definitionId="OnePartitionSelected"> |
|
| 1390 |
</reference> |
|
| 1391 |
<reference |
|
| 1392 |
definitionId="OneCorpusSelected"> |
|
| 1393 |
</reference> |
|
| 1394 |
</or> |
|
| 1395 |
</not> |
|
| 1396 |
</and> |
|
| 1397 |
</visibleWhen> |
|
| 1398 |
</command> |
|
| 1399 |
<command |
|
| 1400 |
commandId="org.txm.rcp.handlers.export.ExportResultParameters" |
|
| 1401 |
icon="icons/functions/export_parameters.png" |
|
| 1402 |
style="push"> |
|
| 1403 |
<visibleWhen |
|
| 1404 |
checkEnabled="false"> |
|
| 1405 |
<and> |
|
| 1277 | 1406 |
<reference |
| 1278 |
definitionId="OneIndexSelected">
|
|
| 1407 |
definitionId="OneTXMResultSelected">
|
|
| 1279 | 1408 |
</reference> |
| 1280 |
<reference |
|
| 1281 |
definitionId="OneConcordanceSelected"> |
|
| 1282 |
</reference> |
|
| 1283 |
<reference |
|
| 1284 |
definitionId="OneSpecificitiesResultSelected"> |
|
| 1285 |
</reference> |
|
| 1286 |
<reference |
|
| 1287 |
definitionId="OneReferencerSelected"> |
|
| 1288 |
</reference> |
|
| 1289 |
<reference |
|
| 1290 |
definitionId="OneProgressionSelected"> |
|
| 1291 |
</reference> |
|
| 1292 |
<reference |
|
| 1293 |
definitionId="OneCooccurrenceSelected"> |
|
| 1294 |
</reference> |
|
| 1295 |
<reference |
|
| 1296 |
definitionId="OneLexicalTableSelected"> |
|
| 1297 |
</reference> |
|
| 1298 |
<reference |
|
| 1299 |
definitionId="OneCASelected"> |
|
| 1300 |
</reference> |
|
| 1301 |
<reference |
|
| 1302 |
definitionId="OneCAHSelected"> |
|
| 1303 |
</reference> |
|
| 1304 |
</or> |
|
| 1409 |
<not> |
|
| 1410 |
<or> |
|
| 1411 |
<reference |
|
| 1412 |
definitionId="OnePartitionSelected"> |
|
| 1413 |
</reference> |
|
| 1414 |
<reference |
|
| 1415 |
definitionId="OneCorpusSelected"> |
|
| 1416 |
</reference> |
|
| 1417 |
</or> |
|
| 1418 |
</not> |
|
| 1419 |
</and> |
|
| 1305 | 1420 |
</visibleWhen> |
| 1306 | 1421 |
</command> |
| 1307 | 1422 |
</toolbar> |
| ... | ... | |
| 1832 | 1947 |
icon="icons/functions/export.png" |
| 1833 | 1948 |
id="org.txm.rcp.corporaview.export" |
| 1834 | 1949 |
label="%menu.label.13"> |
| 1835 |
<command |
|
| 1836 |
commandId="org.txm.rcp.commands.function.ExportResult" |
|
| 1837 |
icon="icons/functions/export_data.png" |
|
| 1838 |
label="%command.label.51" |
|
| 1839 |
style="push"> |
|
| 1840 |
<visibleWhen |
|
| 1841 |
checkEnabled="false"> |
|
| 1842 |
<or> |
|
| 1843 |
<reference |
|
| 1844 |
definitionId="OneLexiconSelected"> |
|
| 1845 |
</reference> |
|
| 1846 |
<reference |
|
| 1847 |
definitionId="OneConcordanceSelected"> |
|
| 1848 |
</reference> |
|
| 1849 |
<reference |
|
| 1850 |
definitionId="OneSpecificitiesResultSelected"> |
|
| 1851 |
</reference> |
|
| 1852 |
<reference |
|
| 1853 |
definitionId="OneIndexSelected"> |
|
| 1854 |
</reference> |
|
| 1855 |
<reference |
|
| 1856 |
definitionId="OneReferencerSelected"> |
|
| 1857 |
</reference> |
|
| 1858 |
<reference |
|
| 1859 |
definitionId="OneProgressionSelected"> |
|
| 1860 |
</reference> |
|
| 1861 |
<reference |
|
| 1862 |
definitionId="OneCooccurrenceSelected"> |
|
| 1863 |
</reference> |
|
| 1864 |
<reference |
|
| 1865 |
definitionId="OneLexicalTableSelected"> |
|
| 1866 |
</reference> |
|
| 1867 |
<reference |
|
| 1868 |
definitionId="OneCASelected"> |
|
| 1869 |
</reference> |
|
| 1870 |
<reference |
|
| 1871 |
definitionId="OneCAHSelected"> |
|
| 1872 |
</reference> |
|
| 1873 |
<reference |
|
| 1874 |
definitionId="OneTXMResultSelected"> |
|
| 1875 |
</reference> |
|
| 1876 |
</or> |
|
| 1877 |
</visibleWhen> |
|
| 1878 |
</command> |
|
| 1950 |
<command |
|
| 1951 |
commandId="org.txm.rcp.commands.function.ExportResult" |
|
| 1952 |
icon="icons/functions/export_data.png" |
|
| 1953 |
label="%command.label.51" |
|
| 1954 |
style="push"> |
|
| 1955 |
<visibleWhen |
|
| 1956 |
checkEnabled="false"> |
|
| 1957 |
<and> |
|
| 1958 |
<reference |
|
| 1959 |
definitionId="OneTXMResultSelected"> |
|
| 1960 |
</reference> |
|
| 1961 |
<not> |
|
| 1962 |
<or> |
|
| 1963 |
<reference |
|
| 1964 |
definitionId="OnePartitionSelected"> |
|
| 1965 |
</reference> |
|
| 1966 |
<reference |
|
| 1967 |
definitionId="OneCorpusSelected"> |
|
| 1968 |
</reference> |
|
| 1969 |
</or> |
|
| 1970 |
</not> |
|
| 1971 |
</and> |
|
| 1972 |
</visibleWhen> |
|
| 1973 |
</command> |
|
| 1974 |
<command |
|
| 1975 |
commandId="org.txm.rcp.handlers.export.ExportResultParameters" |
|
| 1976 |
icon="icons/functions/export_parameters.png" |
|
| 1977 |
style="push"> |
|
| 1978 |
<visibleWhen |
|
| 1979 |
checkEnabled="false"> |
|
| 1980 |
<and> |
|
| 1981 |
<reference |
|
| 1982 |
definitionId="OneTXMResultSelected"> |
|
| 1983 |
</reference> |
|
| 1984 |
<not> |
|
| 1985 |
<or> |
|
| 1986 |
<reference |
|
| 1987 |
definitionId="OneMainCorpusSelected"> |
|
| 1988 |
</reference> |
|
| 1989 |
</or> |
|
| 1990 |
</not> |
|
| 1991 |
</and> |
|
| 1992 |
</visibleWhen> |
|
| 1993 |
</command> |
|
| 1994 |
<command |
|
| 1995 |
commandId="org.txm.rcp.handlers.export.ImportResult" |
|
| 1996 |
icon="icons/functions/import_data.png" |
|
| 1997 |
style="push"> |
|
| 1998 |
<visibleWhen |
|
| 1999 |
checkEnabled="false"> |
|
| 2000 |
<and> |
|
| 2001 |
<reference |
|
| 2002 |
definitionId="OneTXMResultSelected"> |
|
| 2003 |
</reference> |
|
| 2004 |
</and> |
|
| 2005 |
</visibleWhen> |
|
| 2006 |
</command> |
|
| 2007 |
<command |
|
| 2008 |
commandId="org.txm.rcp.handlers.export.ImportResultParameters" |
|
| 2009 |
icon="icons/functions/import_parameters.png" |
|
| 2010 |
style="push"> |
|
| 2011 |
<visibleWhen |
|
| 2012 |
checkEnabled="false"> |
|
| 2013 |
<and> |
|
| 2014 |
<reference |
|
| 2015 |
definitionId="OneTXMResultSelected"> |
|
| 2016 |
</reference> |
|
| 2017 |
<not> |
|
| 2018 |
<or> |
|
| 2019 |
<reference |
|
| 2020 |
definitionId="OneMainCorpusSelected"> |
|
| 2021 |
</reference> |
|
| 2022 |
</or> |
|
| 2023 |
</not> |
|
| 2024 |
</and> |
|
| 2025 |
</visibleWhen> |
|
| 2026 |
</command> |
|
| 1879 | 2027 |
</menu> |
| 1880 | 2028 |
|
| 1881 | 2029 |
<separator |
| ... | ... | |
| 2402 | 2550 |
id="org.txm.rcp.commands.function.ExportResult" |
| 2403 | 2551 |
name="%command.name.24"> |
| 2404 | 2552 |
</command> |
| 2553 |
<command |
|
| 2554 |
defaultHandler="org.txm.rcp.handlers.export.ExportResultParameters" |
|
| 2555 |
id="org.txm.rcp.handlers.export.ExportResultParameters" |
|
| 2556 |
name="Parameters..."> |
|
| 2557 |
</command> |
|
| 2405 | 2558 |
<command |
| 2406 | 2559 |
defaultHandler="org.txm.rcp.handlers.export.ExportSVG" |
| 2407 | 2560 |
id="org.txm.rcp.commands.function.ExportSVG" |
| 2408 | 2561 |
name="%command.name.34"> |
| 2409 | 2562 |
</command> |
| 2563 |
<command |
|
| 2564 |
defaultHandler="org.txm.rcp.handlers.export.ImportResultParameters" |
|
| 2565 |
id="org.txm.rcp.handlers.export.ImportResultParameters" |
|
| 2566 |
name="Result..."> |
|
| 2567 |
</command> |
|
| 2568 |
<command |
|
| 2569 |
defaultHandler="org.txm.rcp.handlers.export.ImportResult" |
|
| 2570 |
id="org.txm.rcp.handlers.export.ImportResult" |
|
| 2571 |
name="Import result..."> |
|
| 2572 |
</command> |
|
| 2573 |
<command |
|
| 2574 |
defaultHandler="org.txm.rcp.handlers.export.ImportResultParameters" |
|
| 2575 |
id="org.txm.rcp.handlers.export.ImportResultParameters" |
|
| 2576 |
name="Import result parameters..."> |
|
| 2577 |
</command> |
|
| 2410 | 2578 |
</extension> |
| 2411 | 2579 |
<extension |
| 2412 | 2580 |
id="links" |
| tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java (revision 1513) | ||
|---|---|---|
| 2 | 2 |
|
| 3 | 3 |
import java.io.ByteArrayInputStream; |
| 4 | 4 |
import java.io.ByteArrayOutputStream; |
| 5 |
import java.io.File; |
|
| 5 | 6 |
import java.io.IOException; |
| 6 | 7 |
import java.io.ObjectInputStream; |
| 7 | 8 |
import java.io.ObjectOutputStream; |
| ... | ... | |
| 14 | 15 |
import java.util.HashMap; |
| 15 | 16 |
import java.util.Map; |
| 16 | 17 |
|
| 18 |
import org.eclipse.core.resources.IFile; |
|
| 17 | 19 |
import org.eclipse.core.runtime.Platform; |
| 18 | 20 |
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; |
| 19 | 21 |
import org.eclipse.core.runtime.preferences.DefaultScope; |
| 20 | 22 |
import org.eclipse.core.runtime.preferences.IEclipsePreferences; |
| 21 | 23 |
import org.eclipse.core.runtime.preferences.IScopeContext; |
| 22 | 24 |
import org.eclipse.core.runtime.preferences.InstanceScope; |
| 25 |
import org.eclipse.osgi.util.NLS; |
|
| 23 | 26 |
import org.osgi.framework.FrameworkUtil; |
| 24 | 27 |
import org.osgi.service.prefs.BackingStoreException; |
| 25 | 28 |
import org.osgi.service.prefs.Preferences; |
| 26 | 29 |
import org.txm.Toolbox; |
| 27 | 30 |
import org.txm.core.results.TXMParameters; |
| 28 | 31 |
import org.txm.core.results.TXMResult; |
| 32 |
import org.txm.objects.Project; |
|
| 33 |
import org.txm.utils.io.FileCopy; |
|
| 29 | 34 |
import org.txm.utils.logger.Log; |
| 30 | 35 |
|
| 31 | 36 |
|
| ... | ... | |
| 1712 | 1717 |
this.put(key, TXMResult.ID_TIME_FORMAT.format(date)); |
| 1713 | 1718 |
} |
| 1714 | 1719 |
|
| 1720 |
/** |
|
| 1721 |
* Saves the local preferences to a file. |
|
| 1722 |
* @param result |
|
| 1723 |
* @throws IOException |
|
| 1724 |
*/ |
|
| 1725 |
public static boolean flush(TXMResult result, File parametersFile) throws IOException {
|
|
| 1726 |
try {
|
|
| 1727 |
preferencesRootNode.node(result.getParametersNodePath()).flush(); |
|
| 1728 |
|
|
| 1729 |
Project p = result.getProject(); |
|
| 1730 |
String store = p.getPreferencesScope().getLocation().toString(); |
|
| 1731 |
String internalPath = result.getParametersNodePath(); |
|
| 1732 |
String prefix = "/project/"+p.getRCPProject().getName(); |
|
| 1733 |
if (internalPath.startsWith(prefix)) {
|
|
| 1734 |
internalPath = internalPath.substring(prefix.length()); |
|
| 1735 |
} |
|
| 1736 |
File prefFile = new File(store, internalPath+".prefs"); |
|
| 1737 |
if (prefFile.exists()) {
|
|
| 1738 |
parametersFile.delete(); |
|
| 1739 |
FileCopy.copy(prefFile, parametersFile); |
|
| 1740 |
if (parametersFile.exists()) {
|
|
| 1741 |
return true; |
|
| 1742 |
} else {
|
|
| 1743 |
System.out.println(NLS.bind("** Error: could not write parameters to {0} file.", parametersFile));
|
|
| 1744 |
} |
|
| 1745 |
} else {
|
|
| 1746 |
System.out.println(NLS.bind("** Error: internal preference {0} file not found.", prefFile));
|
|
| 1747 |
} |
|
| 1748 |
} catch(BackingStoreException e) {
|
|
| 1749 |
System.out.println(NLS.bind("Parameters exported to the {0} file: {1}.", parametersFile, e));
|
|
| 1750 |
e.printStackTrace(); |
|
| 1751 |
Log.severe(e.getMessage()); |
|
| 1752 |
} |
|
| 1753 |
return false; |
|
| 1754 |
} |
|
| 1755 |
|
|
| 1715 | 1756 |
//FIXME: this code is dedicated to dynamically retrieve the static field PREFERENCES_NODE of the runtime subclass and use it super class to avoid to pass it to all methods. |
| 1716 | 1757 |
// eg. to use ProgressionPreferences.getBoolean("test") instead of TXMPreferences.getBoolean(ProgressionPreferences.PREFERENCES_NODE, "test")
|
| 1717 | 1758 |
// but it doesn"t work, need to continue the tests... |
| tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java (revision 1513) | ||
|---|---|---|
| 2 | 2 |
|
| 3 | 3 |
import java.io.File; |
| 4 | 4 |
import java.io.IOException; |
| 5 |
import java.lang.reflect.Constructor; |
|
| 5 | 6 |
import java.lang.reflect.Field; |
| 6 | 7 |
import java.text.DateFormat; |
| 7 | 8 |
import java.text.SimpleDateFormat; |
| ... | ... | |
| 11 | 12 |
import java.util.Date; |
| 12 | 13 |
import java.util.HashMap; |
| 13 | 14 |
import java.util.List; |
| 15 |
import java.util.Properties; |
|
| 14 | 16 |
import java.util.concurrent.Semaphore; |
| 15 | 17 |
import java.util.regex.Pattern; |
| 16 | 18 |
|
| 17 | 19 |
import org.apache.commons.lang.StringUtils; |
| 20 |
import org.apache.xmlbeans.impl.common.IOUtil; |
|
| 18 | 21 |
import org.eclipse.core.runtime.IProgressMonitor; |
| 22 |
import org.eclipse.core.runtime.Platform; |
|
| 19 | 23 |
import org.eclipse.core.runtime.preferences.DefaultScope; |
| 20 | 24 |
import org.eclipse.osgi.util.NLS; |
| 25 |
import org.osgi.framework.Bundle; |
|
| 21 | 26 |
import org.osgi.framework.FrameworkUtil; |
| 22 | 27 |
import org.osgi.service.prefs.BackingStoreException; |
| 23 | 28 |
import org.txm.Toolbox; |
| ... | ... | |
| 28 | 33 |
import org.txm.objects.Workspace; |
| 29 | 34 |
import org.txm.stat.utils.LogMonitor; |
| 30 | 35 |
import org.txm.utils.AsciiUtils; |
| 36 |
import org.txm.utils.io.IOUtils; |
|
| 31 | 37 |
import org.txm.utils.logger.Log; |
| 32 | 38 |
|
| 33 | 39 |
// FIXME: At this moment, an empty list is created for children, to not return |
| ... | ... | |
| 200 | 206 |
this(null, parent); |
| 201 | 207 |
} |
| 202 | 208 |
|
| 203 |
public Date getComputeDate() {
|
|
| 204 |
return this.lastComputingDate; |
|
| 205 |
} |
|
| 206 |
|
|
| 207 |
public Date getCreationDate() {
|
|
| 208 |
return this.creationDate; |
|
| 209 |
} |
|
| 210 |
|
|
| 211 | 209 |
/** |
| 212 | 210 |
* Creates a new TXMResult with no parent. |
| 213 | 211 |
* If a local node exist with the parent_uuid, the parent will be retrieved and this result will be added to it. |
| ... | ... | |
| 314 | 312 |
} |
| 315 | 313 |
} |
| 316 | 314 |
|
| 315 |
public Date getComputeDate() {
|
|
| 316 |
return this.lastComputingDate; |
|
| 317 |
} |
|
| 318 |
|
|
| 319 |
public Date getCreationDate() {
|
|
| 320 |
return this.creationDate; |
|
| 321 |
} |
|
| 322 |
|
|
| 323 |
|
|
| 317 | 324 |
/** |
| 318 | 325 |
* Sets the user name. |
| 319 | 326 |
* @param name |
| ... | ... | |
| 1926 | 1933 |
return clone; |
| 1927 | 1934 |
} |
| 1928 | 1935 |
|
| 1936 |
public boolean importParameters(File parameters) {
|
|
| 1937 |
try {
|
|
| 1938 |
Properties props = new Properties(); |
|
| 1939 |
props.load(IOUtils.getReader(parameters)); |
|
| 1940 |
|
|
| 1941 |
// some tests before... |
|
| 1942 |
String className = props.getProperty("class");
|
|
| 1943 |
if (className == null || className.length() == 0) {
|
|
| 1944 |
System.out.println("** Error: No class internal parameter set.");
|
|
| 1945 |
return false; |
|
| 1946 |
} |
|
| 1947 |
|
|
| 1948 |
if (this.getClass().getName().equals(className)) {
|
|
| 1949 |
for (Object p : props.keySet()) {
|
|
| 1950 |
String ps = p.toString(); |
|
| 1951 |
if (TXMPreferences.PARENT_PARAMETERS_NODE_PATH.equals(ps)) continue; |
|
| 1952 |
if (TXMPreferences.RESULT_PARAMETERS_NODE_PATH.equals(ps)) continue; |
|
| 1953 |
TXMPreferences.put(this.getParametersNodePath(), ps, props.getProperty(ps, "")); |
|
| 1954 |
} |
|
| 1955 |
this.autoLoadParametersFromAnnotations(); // update java parameters |
|
| 1956 |
this.loadParameters(); |
|
| 1957 |
} else {
|
|
| 1958 |
System.out.println(NLS.bind("Cannot import parameters of {0} in a {1} result.", className, this.getClass().getName()));
|
|
| 1959 |
return false; |
|
| 1960 |
} |
|
| 1961 |
} catch(Exception e) {
|
|
| 1962 |
Log.printStackTrace(e); |
|
| 1963 |
} |
|
| 1964 |
return true; |
|
| 1965 |
} |
|
| 1966 |
|
|
| 1929 | 1967 |
/** |
| 1968 |
* import a result from a parameter file |
|
| 1969 |
* @param allparameters the parameters file |
|
| 1970 |
* @return the created result |
|
| 1971 |
*/ |
|
| 1972 |
public TXMResult importResult(File parameters) {
|
|
| 1973 |
try {
|
|
| 1974 |
Properties props = new Properties(); |
|
| 1975 |
props.load(IOUtils.getReader(parameters)); |
|
| 1976 |
|
|
| 1977 |
// some tests before... |
|
| 1978 |
String className = props.getProperty("class");
|
|
| 1979 |
if (className == null || className.length() == 0) {
|
|
| 1980 |
System.out.println("** Error: No class internal parameter set.");
|
|
| 1981 |
return null; |
|
| 1982 |
} |
|
| 1983 |
|
|
| 1984 |
String bundleId = props.getProperty("bundle_id");
|
|
| 1985 |
if (bundleId == null || bundleId.length() == 0) {
|
|
| 1986 |
System.out.println("** Error: No bundle_id internal parameter set.");
|
|
| 1987 |
return null; |
|
| 1988 |
} |
|
| 1989 |
|
|
| 1990 |
Bundle bundle = Platform.getBundle(bundleId); |
|
| 1991 |
if (bundle == null) {
|
|
| 1992 |
Log.finest("** Error: can not restore object with bundle name " + bundleId); //$NON-NLS-1$
|
|
| 1993 |
return null; |
|
| 1994 |
} |
|
| 1995 |
|
|
| 1996 |
// copy parameters |
|
| 1997 |
String newNodePath = this.getProject().getParametersNodeRootPath()+ createUUID() + "_" + className; |
|
| 1998 |
TXMPreferences.put(newNodePath, TXMPreferences.PARENT_PARAMETERS_NODE_PATH, this.getParametersNodePath()); |
|
| 1999 |
for (Object p : props.keySet()) {
|
|
| 2000 |
String ps = p.toString(); |
|
| 2001 |
if (TXMPreferences.PARENT_PARAMETERS_NODE_PATH.equals(ps)) continue; |
|
| 2002 |
if (TXMPreferences.RESULT_PARAMETERS_NODE_PATH.equals(ps)) continue; |
|
| 2003 |
TXMPreferences.put(newNodePath, ps, props.getProperty(ps, "")); |
|
| 2004 |
} |
|
| 2005 |
|
|
| 2006 |
// create instance |
|
| 2007 |
Class<?> cl = bundle.loadClass(className); |
|
| 2008 |
Constructor<?> cons = null; |
|
| 2009 |
Class clazz = this.getClass(); |
|
| 2010 |
while (cons == null) {
|
|
| 2011 |
if (clazz.getSimpleName().equals("TXMResult")) {
|
|
| 2012 |
continue; // no luck |
|
| 2013 |
} |
|
| 2014 |
try {
|
|
| 2015 |
cons = cl.getConstructor(clazz); |
|
| 2016 |
} catch (Exception ce) {
|
|
| 2017 |
clazz = clazz.getSuperclass(); |
|
| 2018 |
} |
|
| 2019 |
} |
|
| 2020 |
|
|
| 2021 |
if (cons == null) {
|
|
| 2022 |
System.out.println(NLS.bind("Cannot import {0} in {1}", parameters, this));
|
|
| 2023 |
} else {
|
|
| 2024 |
cons = cl.getConstructor(String.class); |
|
| 2025 |
TXMResult result = (TXMResult) cons.newInstance(newNodePath); |
|
| 2026 |
System.out.println(NLS.bind("{0} imported", result));
|
|
| 2027 |
return result; |
|
| 2028 |
} |
|
| 2029 |
|
|
| 2030 |
} catch (Exception e) {
|
|
| 2031 |
System.out.println(NLS.bind("Fail to import result from {0}: {1}", parameters, e));
|
|
| 2032 |
Log.printStackTrace(e); |
|
| 2033 |
} |
|
| 2034 |
return null; |
|
| 2035 |
} |
|
| 2036 |
|
|
| 2037 |
/** |
|
| 1930 | 2038 |
* Set the TXMResult parameters |
| 1931 | 2039 |
* |
| 1932 | 2040 |
* @param parameters |
| ... | ... | |
| 2471 | 2579 |
public ArrayList<HashMap<String, Object>> getParametersHistory() {
|
| 2472 | 2580 |
return parametersHistory; |
| 2473 | 2581 |
} |
| 2582 |
|
|
| 2583 |
public boolean toParametersFile(File outfile) throws IOException {
|
|
| 2584 |
return TXMPreferences.flush(this, outfile); |
|
Formats disponibles : Unified diff