Révision 3947
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/swt/HashMapWidget.java (revision 3947) | ||
|---|---|---|
| 1 |
package org.txm.rcp.swt; |
|
| 2 |
|
|
| 3 |
import java.util.HashMap; |
|
| 4 |
import java.util.LinkedHashMap; |
|
| 5 |
|
|
| 6 |
import org.eclipse.swt.SWT; |
|
| 7 |
import org.eclipse.swt.events.MouseEvent; |
|
| 8 |
import org.eclipse.swt.events.MouseListener; |
|
| 9 |
import org.eclipse.swt.events.SelectionEvent; |
|
| 10 |
import org.eclipse.swt.events.SelectionListener; |
|
| 11 |
import org.eclipse.swt.widgets.Button; |
|
| 12 |
import org.eclipse.swt.widgets.Composite; |
|
| 13 |
import org.eclipse.swt.widgets.Label; |
|
| 14 |
import org.txm.rcp.messages.TXMUIMessages; |
|
| 15 |
import org.txm.rcp.swt.dialog.HashMapDialog; |
|
| 16 |
|
|
| 17 |
/** |
|
| 18 |
* Widget : label + button to open the selector |
|
| 19 |
* |
|
| 20 |
* @author mdecorde |
|
| 21 |
* |
|
| 22 |
*/ |
|
| 23 |
public class HashMapWidget extends GLComposite {
|
|
| 24 |
|
|
| 25 |
Label valueLabel; |
|
| 26 |
Button changeValues; |
|
| 27 |
LinkedHashMap<String, String> values = new LinkedHashMap<String, String>(); |
|
| 28 |
LinkedHashMap<String, String> defaultValues = new LinkedHashMap<String, String>(); |
|
| 29 |
|
|
| 30 |
public HashMapWidget(Composite parent, int style, String name) {
|
|
| 31 |
|
|
| 32 |
super(parent, style, name); |
|
| 33 |
|
|
| 34 |
new Label(parent, SWT.NONE).setText(name); |
|
| 35 |
|
|
| 36 |
valueLabel = new Label(parent, SWT.NONE); |
|
| 37 |
valueLabel.addMouseListener(new MouseListener() {
|
|
| 38 |
|
|
| 39 |
@Override |
|
| 40 |
public void mouseUp(MouseEvent e) { }
|
|
| 41 |
|
|
| 42 |
@Override |
|
| 43 |
public void mouseDown(MouseEvent e) { }
|
|
| 44 |
|
|
| 45 |
@Override |
|
| 46 |
public void mouseDoubleClick(MouseEvent e) {
|
|
| 47 |
|
|
| 48 |
HashMapDialog dialog = new HashMapDialog(e.display.getActiveShell(), "Negativ filters", defaultValues, values); |
|
| 49 |
if (dialog.open() == HashMapDialog.OK) {
|
|
| 50 |
values = dialog.getValues(); |
|
| 51 |
updateLabel(); |
|
| 52 |
} |
|
| 53 |
|
|
| 54 |
} |
|
| 55 |
}); |
|
| 56 |
|
|
| 57 |
changeValues = new Button(parent, SWT.PUSH); |
|
| 58 |
changeValues.setText(TXMUIMessages.edit); |
|
| 59 |
changeValues.addSelectionListener(new SelectionListener() {
|
|
| 60 |
|
|
| 61 |
@Override |
|
| 62 |
public void widgetSelected(SelectionEvent e) {
|
|
| 63 |
|
|
| 64 |
HashMapDialog dialog = new HashMapDialog(e.display.getActiveShell(), "Negativ filters", defaultValues, values); |
|
| 65 |
if (dialog.open() == HashMapDialog.OK) {
|
|
| 66 |
values = dialog.getValues(); |
|
| 67 |
updateLabel(); |
|
| 68 |
} |
|
| 69 |
} |
|
| 70 |
|
|
| 71 |
@Override |
|
| 72 |
public void widgetDefaultSelected(SelectionEvent e) { }
|
|
| 73 |
}); |
|
| 74 |
} |
|
| 75 |
|
|
| 76 |
public void setDefaultValues(LinkedHashMap<String, String> values) {
|
|
| 77 |
|
|
| 78 |
this.defaultValues.clear(); |
|
| 79 |
if (defaultValues == null) return; |
|
| 80 |
|
|
| 81 |
this.defaultValues.putAll(values); |
|
| 82 |
} |
|
| 83 |
|
|
| 84 |
public void setValues(LinkedHashMap<String, String> values) {
|
|
| 85 |
|
|
| 86 |
this.values.clear(); |
|
| 87 |
if (values == null) return; |
|
| 88 |
|
|
| 89 |
this.values.putAll(values); |
|
| 90 |
updateLabel(); |
|
| 91 |
} |
|
| 92 |
|
|
| 93 |
protected void updateLabel() {
|
|
| 94 |
|
|
| 95 |
if (valueLabel.isDisposed()) return; |
|
| 96 |
|
|
| 97 |
String s = ""; |
|
| 98 |
for (String k : values.keySet()) {
|
|
| 99 |
if (values.get(k) != null && values.get(k).length() > 0) {
|
|
| 100 |
if (s.length() > 0) s += ", "; |
|
| 101 |
s += k+ "=" + values.get(k); |
|
| 102 |
} |
|
| 103 |
} |
|
| 104 |
valueLabel.setText(s); |
|
| 105 |
valueLabel.getParent().layout(true); |
|
| 106 |
valueLabel.getParent().getParent().layout(true); |
|
| 107 |
|
|
| 108 |
} |
|
| 109 |
|
|
| 110 |
public LinkedHashMap<String, String> getValues() {
|
|
| 111 |
|
|
| 112 |
return new LinkedHashMap<>(values); |
|
| 113 |
} |
|
| 114 |
|
|
| 115 |
public LinkedHashMap<String, String> getDefaultValues() {
|
|
| 116 |
|
|
| 117 |
return new LinkedHashMap<>(defaultValues); |
|
| 118 |
} |
|
| 119 |
} |
|
| 0 | 120 | |
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/swt/dialog/HashMapDialog.java (revision 3947) | ||
|---|---|---|
| 1 |
package org.txm.rcp.swt.dialog; |
|
| 2 |
|
|
| 3 |
import java.util.HashMap; |
|
| 4 |
import java.util.LinkedHashMap; |
|
| 5 |
|
|
| 6 |
import org.eclipse.jface.dialogs.Dialog; |
|
| 7 |
import org.eclipse.swt.SWT; |
|
| 8 |
import org.eclipse.swt.layout.GridData; |
|
| 9 |
import org.eclipse.swt.layout.GridLayout; |
|
| 10 |
import org.eclipse.swt.widgets.Composite; |
|
| 11 |
import org.eclipse.swt.widgets.Control; |
|
| 12 |
import org.eclipse.swt.widgets.Label; |
|
| 13 |
import org.eclipse.swt.widgets.Shell; |
|
| 14 |
import org.eclipse.swt.widgets.Text; |
|
| 15 |
|
|
| 16 |
/** |
|
| 17 |
* Dialog to set HashMap values given a HashMap pre-filled with values to edit |
|
| 18 |
* |
|
| 19 |
* @author mdecorde |
|
| 20 |
* |
|
| 21 |
*/ |
|
| 22 |
public class HashMapDialog extends Dialog {
|
|
| 23 |
|
|
| 24 |
LinkedHashMap<String, String> values = new LinkedHashMap<String, String>(); |
|
| 25 |
LinkedHashMap<String, String> defaultValues = new LinkedHashMap<String, String>(); |
|
| 26 |
HashMap<String, Text> fields = new HashMap<String, Text>(); |
|
| 27 |
String title; |
|
| 28 |
|
|
| 29 |
/** |
|
| 30 |
* |
|
| 31 |
* @param parentShell |
|
| 32 |
* @param title |
|
| 33 |
* @param values values to edit, value may be null |
|
| 34 |
*/ |
|
| 35 |
public HashMapDialog(Shell parentShell, String title, LinkedHashMap<String, String> defaultValues, LinkedHashMap<String, String> values) {
|
|
| 36 |
|
|
| 37 |
super(parentShell); |
|
| 38 |
|
|
| 39 |
this.title = title; |
|
| 40 |
|
|
| 41 |
if (defaultValues != null) {
|
|
| 42 |
this.values.putAll(defaultValues); |
|
| 43 |
} |
|
| 44 |
|
|
| 45 |
if (values != null) {
|
|
| 46 |
this.values.putAll(values); |
|
| 47 |
} |
|
| 48 |
} |
|
| 49 |
|
|
| 50 |
@Override |
|
| 51 |
protected void configureShell(Shell newShell) {
|
|
| 52 |
|
|
| 53 |
super.configureShell(newShell); |
|
| 54 |
newShell.setText(title); |
|
| 55 |
} |
|
| 56 |
|
|
| 57 |
@Override |
|
| 58 |
protected Control createDialogArea(Composite parent) {
|
|
| 59 |
|
|
| 60 |
parent.setLayout(new GridLayout(2, false)); |
|
| 61 |
|
|
| 62 |
for (String k : values.keySet()) {
|
|
| 63 |
Label l = new Label(parent, SWT.NONE); |
|
| 64 |
l.setText(k); |
|
| 65 |
l.setLayoutData(new GridData()); |
|
| 66 |
|
|
| 67 |
Text field = new Text(parent, SWT.BORDER); |
|
| 68 |
field.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); |
|
| 69 |
if (values.get(k) != null) {
|
|
| 70 |
field.setText(values.get(k)); |
|
| 71 |
} |
|
| 72 |
|
|
| 73 |
fields.put(k, field); |
|
| 74 |
} |
|
| 75 |
|
|
| 76 |
return parent; |
|
| 77 |
} |
|
| 78 |
|
|
| 79 |
@Override |
|
| 80 |
protected void okPressed() {
|
|
| 81 |
|
|
| 82 |
values.clear(); |
|
| 83 |
for (String k : fields.keySet()) {
|
|
| 84 |
if (fields.get(k).getText().length() > 0) {
|
|
| 85 |
values.put(k, fields.get(k).getText()); |
|
| 86 |
} |
|
| 87 |
} |
|
| 88 |
|
|
| 89 |
super.okPressed(); |
|
| 90 |
} |
|
| 91 |
|
|
| 92 |
/** |
|
| 93 |
* |
|
| 94 |
* @return the values set |
|
| 95 |
*/ |
|
| 96 |
public LinkedHashMap<String, String> getValues() {
|
|
| 97 |
|
|
| 98 |
return values; |
|
| 99 |
} |
|
| 100 |
} |
|
| 0 | 101 | |
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/swt/dialog/ComboDialog.java (revision 3947) | ||
|---|---|---|
| 37 | 37 |
import org.eclipse.swt.widgets.Composite; |
| 38 | 38 |
import org.eclipse.swt.widgets.Control; |
| 39 | 39 |
import org.eclipse.swt.widgets.Label; |
| 40 |
import org.eclipse.swt.widgets.Layout; |
|
| 41 | 40 |
import org.eclipse.swt.widgets.Shell; |
| 42 | 41 |
import org.txm.rcp.messages.TXMUIMessages; |
| 43 | 42 |
|
| ... | ... | |
| 85 | 84 |
* @param defaultValue the default value (may be null) |
| 86 | 85 |
*/ |
| 87 | 86 |
public ComboDialog(Shell parentShell, String title, List<String> values, String defaultValue) {
|
| 87 |
|
|
| 88 | 88 |
this(parentShell, title, values, defaultValue, null); |
| 89 |
|
|
| 90 | 89 |
} |
| 91 | 90 |
|
| 92 | 91 |
/** |
| ... | ... | |
| 98 | 97 |
* @param defaultValue the default value (may be null) |
| 99 | 98 |
* @param comboStyle if null combo is SINGLE and READONLY |
| 100 | 99 |
*/ |
| 101 |
public ComboDialog(Shell parentShell, String title, List<String> values, |
|
| 102 |
String defaultValue, Integer comboStyle) {
|
|
| 100 |
public ComboDialog(Shell parentShell, String title, List<String> values, String defaultValue, Integer comboStyle) {
|
|
| 101 |
|
|
| 103 | 102 |
super(parentShell); |
| 104 | 103 |
this.parentShell = parentShell; |
| 105 | 104 |
this.setShellStyle(this.getShellStyle()); |
| ... | ... | |
| 114 | 113 |
*/ |
| 115 | 114 |
@Override |
| 116 | 115 |
protected void configureShell(Shell newShell) {
|
| 116 |
|
|
| 117 | 117 |
super.configureShell(newShell); |
| 118 | 118 |
newShell.setText(title); |
| 119 | 119 |
} |
| ... | ... | |
| 139 | 139 |
style = comboStyle; |
| 140 | 140 |
} |
| 141 | 141 |
combo = new Combo(p, style); |
| 142 |
combo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, |
|
| 143 |
true, 5, 1)); |
|
| 142 |
combo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 5, 1)); |
|
| 144 | 143 |
combo.setItems(values.toArray(new String[] {}));
|
| 145 | 144 |
// combo.setLayoutData(new GridData(GridData.FILL,GridData.FILL, true, |
| 146 | 145 |
// true)); |
| ... | ... | |
| 157 | 156 |
*/ |
| 158 | 157 |
@Override |
| 159 | 158 |
protected void okPressed() {
|
| 159 |
|
|
| 160 | 160 |
selectedIndex = combo.getSelectionIndex(); |
| 161 | 161 |
selectedValue = values.get(selectedIndex); |
| 162 | 162 |
super.okPressed(); |
| ... | ... | |
| 168 | 168 |
* @return the values |
| 169 | 169 |
*/ |
| 170 | 170 |
public List<String> getValues() {
|
| 171 |
|
|
| 171 | 172 |
return values; |
| 172 | 173 |
} |
| 173 | 174 |
|
| ... | ... | |
| 177 | 178 |
* @param values the new values |
| 178 | 179 |
*/ |
| 179 | 180 |
public void setValues(List<String> values) {
|
| 181 |
|
|
| 180 | 182 |
this.values = values; |
| 181 | 183 |
combo.setItems(values.toArray(new String[] {}));
|
| 182 |
if (values.size() > 0) |
|
| 184 |
if (values.size() > 0) {
|
|
| 183 | 185 |
combo.select(0); |
| 186 |
} |
|
| 184 | 187 |
} |
| 185 | 188 |
|
| 186 | 189 |
/** |
| ... | ... | |
| 189 | 192 |
* @return the selected index |
| 190 | 193 |
*/ |
| 191 | 194 |
public int getSelectedIndex() {
|
| 195 |
|
|
| 192 | 196 |
return selectedIndex; |
| 193 | 197 |
} |
| 194 | 198 |
|
| ... | ... | |
| 198 | 202 |
* @return the selected value |
| 199 | 203 |
*/ |
| 200 | 204 |
public String getSelectedValue() {
|
| 205 |
|
|
| 201 | 206 |
return selectedValue; |
| 202 | 207 |
} |
| 203 | 208 |
|
| ... | ... | |
| 207 | 212 |
* @param string the string |
| 208 | 213 |
*/ |
| 209 | 214 |
public void selectValue(String string) {
|
| 215 |
|
|
| 210 | 216 |
for (int i = 0; i < values.size(); i++) |
| 211 | 217 |
if (values.get(i).equals(string)) {
|
| 212 | 218 |
combo.select(i); |
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/swt/dialog/PropertySelector.java (revision 3947) | ||
|---|---|---|
| 46 | 46 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
| 47 | 47 |
import org.txm.searchengine.cqp.corpus.Property; |
| 48 | 48 |
|
| 49 |
// TODO: Auto-generated Javadoc |
|
| 50 | 49 |
/** |
| 51 |
* The Class PropertySelector.
|
|
| 50 |
* Select and order a properties list
|
|
| 52 | 51 |
*/ |
| 53 | 52 |
public class PropertySelector extends Dialog {
|
| 54 | 53 |
|
| ... | ... | |
| 77 | 76 |
* @param corpus the corpus |
| 78 | 77 |
*/ |
| 79 | 78 |
public PropertySelector(Shell parentShell, CQPCorpus corpus) {
|
| 79 |
|
|
| 80 | 80 |
super(parentShell); |
| 81 | 81 |
try {
|
| 82 | 82 |
this.properties = new ArrayList<Property>(corpus.getOrderedProperties()); |
| ... | ... | |
| 96 | 96 |
* @param title the title |
| 97 | 97 |
* @param mess the mess |
| 98 | 98 |
*/ |
| 99 |
public PropertySelector(Shell parentShell, CQPCorpus corpus, String title, |
|
| 100 |
String mess) {
|
|
| 99 |
public PropertySelector(Shell parentShell, CQPCorpus corpus, String title, String mess) {
|
|
| 100 |
|
|
| 101 | 101 |
super(parentShell); |
| 102 | 102 |
this.corpus = corpus; |
| 103 | 103 |
this.title = title; |
| ... | ... | |
| 115 | 115 |
*/ |
| 116 | 116 |
@Override |
| 117 | 117 |
protected void configureShell(Shell newShell) {
|
| 118 |
|
|
| 118 | 119 |
super.configureShell(newShell); |
| 119 | 120 |
newShell.setText(TXMUIMessages.selectAProperty); |
| 120 |
if (title != null) |
|
| 121 |
if (title != null) {
|
|
| 121 | 122 |
newShell.setText(title); |
| 123 |
} |
|
| 122 | 124 |
} |
| 123 | 125 |
|
| 124 | 126 |
/** The composite. */ |
| ... | ... | |
| 129 | 131 |
*/ |
| 130 | 132 |
@Override |
| 131 | 133 |
protected Control createDialogArea(Composite parent) {
|
| 134 |
|
|
| 132 | 135 |
composite = new Composite(parent, SWT.NONE); |
| 133 | 136 |
GridLayout layout = new GridLayout(2, false); |
| 134 | 137 |
composite.setLayout(layout); |
| ... | ... | |
| 163 | 166 |
*/ |
| 164 | 167 |
@Override |
| 165 | 168 |
protected void okPressed() {
|
| 169 |
|
|
| 166 | 170 |
int propIndex = anaPropCombo.getSelectionIndex(); |
| 167 | 171 |
if (propIndex == -1) {
|
| 168 | 172 |
MessageDialog.openError(getShell(), |
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/PropertiesSelector.java (revision 3947) | ||
|---|---|---|
| 33 | 33 |
|
| 34 | 34 |
import org.eclipse.osgi.util.NLS; |
| 35 | 35 |
import org.eclipse.swt.SWT; |
| 36 |
import org.eclipse.swt.events.MouseEvent; |
|
| 37 |
import org.eclipse.swt.events.MouseListener; |
|
| 36 | 38 |
import org.eclipse.swt.events.SelectionEvent; |
| 37 | 39 |
import org.eclipse.swt.events.SelectionListener; |
| 38 | 40 |
import org.eclipse.swt.layout.GridData; |
| ... | ... | |
| 43 | 45 |
import org.eclipse.swt.widgets.Listener; |
| 44 | 46 |
import org.txm.objects.CorpusBuild; |
| 45 | 47 |
import org.txm.rcp.messages.TXMUIMessages; |
| 48 |
import org.txm.rcp.swt.dialog.HashMapDialog; |
|
| 46 | 49 |
import org.txm.rcp.swt.dialog.MultiplePropertySelectionDialog; |
| 47 | 50 |
import org.txm.rcp.swt.dialog.SinglePropertySelectionDialog; |
| 48 | 51 |
import org.txm.searchengine.core.Property; |
| ... | ... | |
| 87 | 90 |
|
| 88 | 91 |
ArrayList<Listener> listeners = new ArrayList<>(); |
| 89 | 92 |
|
| 93 |
|
|
| 90 | 94 |
/** |
| 91 | 95 |
* Instantiates a new properties selector. |
| 92 | 96 |
* |
| ... | ... | |
| 94 | 98 |
* @param style the style |
| 95 | 99 |
*/ |
| 96 | 100 |
public PropertiesSelector(Composite parent, int style) {
|
| 101 |
this(parent, style, null); |
|
| 102 |
} |
|
| 103 |
|
|
| 104 |
/** |
|
| 105 |
* Instantiates a new properties selector. |
|
| 106 |
* |
|
| 107 |
* @param parent the parent |
|
| 108 |
* @param style the style |
|
| 109 |
* @param title widget title to display |
|
| 110 |
*/ |
|
| 111 |
public PropertiesSelector(Composite parent, int style, String title) {
|
|
| 97 | 112 |
super(parent, style); |
| 98 | 113 |
|
| 99 | 114 |
this.setLayout(new GridLayout(3, false)); |
| 100 | 115 |
|
| 101 | 116 |
// "properties" |
| 102 | 117 |
propLabel = new Label(this, SWT.NONE); |
| 103 |
propLabel.setText(TXMUIMessages.propertiesColon); |
|
| 118 |
if (title != null) {
|
|
| 119 |
propLabel.setText(title); |
|
| 120 |
} else {
|
|
| 121 |
propLabel.setText(TXMUIMessages.propertiesColon); |
|
| 122 |
} |
|
| 104 | 123 |
propLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, true)); |
| 105 | 124 |
|
| 106 | 125 |
// selected properties |
| 107 | 126 |
propertiesLabel = new Label(this, SWT.NONE); |
| 108 | 127 |
propertiesLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true)); |
| 128 |
propertiesLabel.addMouseListener(new MouseListener() {
|
|
| 129 |
|
|
| 130 |
@Override |
|
| 131 |
public void mouseUp(MouseEvent e) { }
|
|
| 132 |
|
|
| 133 |
@Override |
|
| 134 |
public void mouseDown(MouseEvent e) { }
|
|
| 135 |
|
|
| 136 |
@Override |
|
| 137 |
public void mouseDoubleClick(MouseEvent e) {
|
|
| 138 |
|
|
| 139 |
showEditorDialog(); |
|
| 140 |
refresh(); |
|
| 141 |
} |
|
| 142 |
}); |
|
| 109 | 143 |
|
| 110 | 144 |
// "edit" |
| 111 | 145 |
openEditDialog = new Button(this, SWT.PUSH); |
| ... | ... | |
| 131 | 165 |
* @param parent |
| 132 | 166 |
*/ |
| 133 | 167 |
public PropertiesSelector(Composite parent) {
|
| 134 |
this(parent, SWT.NONE); |
|
| 168 |
this(parent, SWT.NONE, null);
|
|
| 135 | 169 |
} |
| 136 | 170 |
|
| 171 |
/** |
|
| 172 |
* Instantiates a new properties selector. |
|
| 173 |
* |
|
| 174 |
* @param parent |
|
| 175 |
*/ |
|
| 176 |
public PropertiesSelector(Composite parent, String title) {
|
|
| 177 |
this(parent, SWT.NONE, titles); |
|
| 178 |
} |
|
| 179 |
|
|
| 137 | 180 |
public void setButtonText(String text) {
|
| 138 | 181 |
if (openEditDialog != null && !openEditDialog.isDisposed()) {
|
| 139 | 182 |
openEditDialog.setText(text); |
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java (revision 3947) | ||
|---|---|---|
| 130 | 130 |
*/ |
| 131 | 131 |
// private static HashMap<Class, Class> managedDoubleClickClasses = new HashMap<Class, Class>(); |
| 132 | 132 |
|
| 133 |
|
|
| 134 | 133 |
public static HashMap<String, String> doubleClickInstalledCommands = new HashMap<>(); |
| 135 | 134 |
|
| 136 |
|
|
| 137 |
// public static HashMap<Class, Class> getManagedDoubleClickClasses() {
|
|
| 138 |
// return managedDoubleClickClasses; |
|
| 139 |
// } |
|
| 140 |
|
|
| 141 |
|
|
| 142 | 135 |
/** |
| 143 | 136 |
* Gets the single instance of CorporaView. |
| 144 | 137 |
* |
| ... | ... | |
| 157 | 150 |
} |
| 158 | 151 |
|
| 159 | 152 |
public TreeViewer getTreeViewer() {
|
| 153 |
|
|
| 160 | 154 |
return treeViewer; |
| 161 | 155 |
} |
| 162 | 156 |
|
| ... | ... | |
| 492 | 486 |
*/ |
| 493 | 487 |
@Override |
| 494 | 488 |
public void setFocus() {
|
| 489 |
|
|
| 495 | 490 |
treeViewer.getControl().setFocus(); |
| 496 | 491 |
} |
| 497 | 492 |
|
| ... | ... | |
| 501 | 496 |
* @return |
| 502 | 497 |
*/ |
| 503 | 498 |
public static Object getFirstSelectedObject() {
|
| 499 |
|
|
| 504 | 500 |
CorporaView corporaView = getInstance(); |
| 505 | 501 |
if (corporaView != null) {
|
| 506 | 502 |
try {
|
| ... | ... | |
| 521 | 517 |
* @return |
| 522 | 518 |
*/ |
| 523 | 519 |
public static List<?> getSelectedObjects() {
|
| 520 |
|
|
| 524 | 521 |
CorporaView corporaView = getInstance(); |
| 525 | 522 |
if (corporaView != null) {
|
| 526 | 523 |
try {
|
| ... | ... | |
| 585 | 582 |
* Refresh the tree view. |
| 586 | 583 |
*/ |
| 587 | 584 |
public static void refresh() {
|
| 585 |
|
|
| 588 | 586 |
CorporaView corporaView = getInstance(); |
| 589 | 587 |
if (corporaView != null) {
|
| 590 | 588 |
corporaView.treeViewer.refresh(); |
| ... | ... | |
| 602 | 600 |
corporaView.treeViewer.refresh(); |
| 603 | 601 |
} |
| 604 | 602 |
|
| 605 |
|
|
| 606 |
|
|
| 607 | 603 |
/** |
| 608 | 604 |
* Refreshes the specified result node in the tree view. |
| 609 | 605 |
* |
| 610 | 606 |
* @param result |
| 611 | 607 |
*/ |
| 612 | 608 |
public static void refreshObject(final TXMResult result) {
|
| 609 |
|
|
| 613 | 610 |
Display.getDefault().syncExec(new Runnable() {
|
| 614 | 611 |
|
| 615 | 612 |
@Override |
| 616 | 613 |
public void run() {
|
| 617 | 614 |
|
| 618 | 615 |
CorporaView corporaView = getInstance(); |
| 619 |
|
|
| 620 | 616 |
corporaView.treeViewer.refresh(); |
| 621 | 617 |
|
| 622 | 618 |
try {
|
| 623 | 619 |
CorporaView.expand(result.getParent()); |
| 624 | 620 |
} |
| 625 |
catch (NullPointerException e) {
|
|
| 626 |
} |
|
| 621 |
catch (NullPointerException e) { }
|
|
| 627 | 622 |
} |
| 628 | 623 |
}); |
| 629 | 624 |
} |
| ... | ... | |
| 634 | 629 |
* @param editor |
| 635 | 630 |
*/ |
| 636 | 631 |
public static void refreshObject(TXMEditor editor) {
|
| 632 |
|
|
| 637 | 633 |
refreshObject(editor.getResult()); |
| 638 | 634 |
} |
| 639 | 635 |
|
| ... | ... | |
| 643 | 639 |
* @param obj |
| 644 | 640 |
*/ |
| 645 | 641 |
public static void expand(Object obj) {
|
| 642 |
|
|
| 646 | 643 |
final CorporaView corporaView = getInstance(); |
| 647 | 644 |
if (obj != null) {
|
| 648 | 645 |
corporaView.treeViewer.expandToLevel(obj, 1); |
| ... | ... | |
| 654 | 651 |
* @param obj |
| 655 | 652 |
*/ |
| 656 | 653 |
public static void reveal(TXMResult obj) {
|
| 654 |
|
|
| 657 | 655 |
final CorporaView corporaView = getInstance(); |
| 658 | 656 |
if (obj != null && corporaView != null) {
|
| 659 | 657 |
corporaView.treeViewer.reveal(obj); |
| ... | ... | |
| 666 | 664 |
* @return |
| 667 | 665 |
*/ |
| 668 | 666 |
public static boolean isActive() {
|
| 667 |
|
|
| 669 | 668 |
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
| 670 | 669 |
if (window == null) {
|
| 671 | 670 |
return false; |
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/commands/function/RefreshCorporaView.java (revision 3947) | ||
|---|---|---|
| 5 | 5 |
import org.eclipse.core.commands.ExecutionException; |
| 6 | 6 |
import org.txm.rcp.views.corpora.CorporaView; |
| 7 | 7 |
|
| 8 |
/** |
|
| 9 |
* Refresh the corpora view TreeViewer |
|
| 10 |
* |
|
| 11 |
* @author mdecorde |
|
| 12 |
* |
|
| 13 |
*/ |
|
| 8 | 14 |
public class RefreshCorporaView extends AbstractHandler {
|
| 9 | 15 |
|
| 10 | 16 |
@Override |
| TXM/trunk/bundles/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java (revision 3947) | ||
|---|---|---|
| 6 | 6 |
import java.lang.reflect.Field; |
| 7 | 7 |
import java.util.ArrayList; |
| 8 | 8 |
import java.util.Arrays; |
| 9 |
import java.util.HashMap; |
|
| 9 | 10 |
import java.util.HashSet; |
| 10 | 11 |
import java.util.LinkedHashMap; |
| 11 | 12 |
import java.util.List; |
| ... | ... | |
| 79 | 80 |
import org.txm.rcp.messages.TXMUIMessages; |
| 80 | 81 |
import org.txm.rcp.preferences.RCPPreferences; |
| 81 | 82 |
import org.txm.rcp.swt.GLComposite; |
| 83 |
import org.txm.rcp.swt.HashMapWidget; |
|
| 82 | 84 |
import org.txm.rcp.swt.dialog.ComputeProgressMonitorDialog; |
| 83 | 85 |
import org.txm.rcp.swt.widget.AssistedChoiceQueryWidget; |
| 84 | 86 |
import org.txm.rcp.swt.widget.AssistedQueryWidget; |
| ... | ... | |
| 975 | 977 |
Log.finest("TXMEditor.compute(): " + TXMEditor.this.getClass().getSimpleName() + ": auto updating result from editor."); //$NON-NLS-1$ //$NON-NLS-2$
|
| 976 | 978 |
autoUpdateResultFromEditorParameters(); |
| 977 | 979 |
|
| 978 |
|
|
| 979 |
|
|
| 980 | 980 |
// FIXME: SJ: useless at this time? |
| 981 | 981 |
// Stores the last parameters before the computing to later auto-update the Widgets only if some parameters have changed |
| 982 | 982 |
// setLastComputingParameters(TXMEditor.this.getResult().getLastParametersFromHistory()); |
| ... | ... | |
| 1383 | 1383 |
* NewNavigationWidget (Integer) |
| 1384 | 1384 |
* AssistedQueryWidget (String, from Query) |
| 1385 | 1385 |
* QueryWidget (String, from Query) |
| 1386 |
* HashMapWidget (HashMap<String, String>) |
|
| 1386 | 1387 |
* |
| 1387 | 1388 |
*/ |
| 1388 | 1389 |
public void autoUpdateEditorFieldsFromResult(boolean update) {
|
| ... | ... | |
| 1477 | 1478 |
else if (object instanceof NewNavigationWidget) {
|
| 1478 | 1479 |
((NewNavigationWidget) object).setCurrentPosition((Integer) value); |
| 1479 | 1480 |
} |
| 1481 |
else if (object instanceof HashMapWidget) {
|
|
| 1482 |
((HashMapWidget) object).setValues((LinkedHashMap) value); |
|
| 1483 |
} |
|
| 1480 | 1484 |
else if (object instanceof AssistedChoiceQueryWidget) {
|
| 1481 | 1485 |
if (!((IQuery) value).getQueryString().isEmpty()) {
|
| 1482 | 1486 |
((AssistedChoiceQueryWidget) object).setText(((IQuery) value).getQueryString()); |
| ... | ... | |
| 1575 | 1579 |
else if (object instanceof FloatSpinner) {
|
| 1576 | 1580 |
value = ((FloatSpinner) object).getSelectionAsFloat(); |
| 1577 | 1581 |
} |
| 1582 |
else if (object instanceof HashMapWidget) {
|
|
| 1583 |
value = ((HashMapWidget) object).getValues(); |
|
| 1584 |
} |
|
| 1578 | 1585 |
else if (object instanceof Spinner) {
|
| 1579 | 1586 |
value = ((Spinner) object).getSelection(); |
| 1580 | 1587 |
} |
| TXM/trunk/bundles/org.txm.texts.core/src/org/txm/texts/core/TextsView.java (revision 3947) | ||
|---|---|---|
| 1 | 1 |
package org.txm.texts.core; |
| 2 | 2 |
|
| 3 | 3 |
import java.io.File; |
| 4 |
import java.io.ObjectOutputStream; |
|
| 4 | 5 |
import java.io.PrintWriter; |
| 6 |
import java.io.StringReader; |
|
| 7 |
import java.io.StringWriter; |
|
| 5 | 8 |
import java.util.ArrayList; |
| 9 |
import java.util.HashMap; |
|
| 6 | 10 |
import java.util.LinkedHashMap; |
| 7 | 11 |
import java.util.List; |
| 12 |
import java.util.Properties; |
|
| 8 | 13 |
|
| 9 | 14 |
import org.apache.commons.lang.StringUtils; |
| 10 | 15 |
import org.eclipse.osgi.util.NLS; |
| ... | ... | |
| 30 | 35 |
// ArrayList<String> positiveFilters; |
| 31 | 36 |
|
| 32 | 37 |
@Parameter(key = "negativeFilters") |
| 33 |
String negativeFilters;
|
|
| 38 |
LinkedHashMap<String, String> negativeFilters;
|
|
| 34 | 39 |
|
| 35 | 40 |
private LinkedHashMap<String, ArrayList<String>> result; |
| 36 | 41 |
|
| ... | ... | |
| 53 | 58 |
@Override |
| 54 | 59 |
public boolean saveParameters() throws Exception {
|
| 55 | 60 |
|
| 56 |
this.saveParameter("columns", StringUtils.join(pColumns, "\t"));
|
|
| 61 |
|
|
| 62 |
String s = ""; |
|
| 63 |
for (StructuralUnitProperty sup : pColumns) {
|
|
| 64 |
if (s.length() > 0) s += "\t"; |
|
| 65 |
s += sup.getFullName(); |
|
| 66 |
} |
|
| 67 |
this.saveParameter("columns", s);
|
|
| 57 | 68 |
// this.saveParameter("positiveFilters", StringUtils.join(positiveFilters, "\t"));
|
| 58 |
this.saveParameter("negativeFilters", negativeFilters);
|
|
| 69 |
|
|
| 70 |
Properties props = new Properties(); |
|
| 71 |
props.putAll(negativeFilters); |
|
| 72 |
StringWriter sw = new StringWriter(); |
|
| 73 |
props.store(sw, ""); |
|
| 74 |
this.saveParameter("negativeFilters", sw.toString());
|
|
| 59 | 75 |
return true; |
| 60 | 76 |
} |
| 61 | 77 |
|
| ... | ... | |
| 64 | 80 |
|
| 65 | 81 |
String v = this.getStringParameterValue("columns").toString();
|
| 66 | 82 |
if ("*".equals(v)) {
|
| 67 |
; |
|
| 83 |
|
|
| 68 | 84 |
this.pColumns = new ArrayList<>(getCorpus().getStructuralUnit("text").getUserDefinedOrderedProperties());
|
| 69 | 85 |
for (int i = 0 ; i < pColumns.size() ; i++) {
|
| 70 | 86 |
if (pColumns.get(i).getName().equals("id")) {
|
| ... | ... | |
| 77 | 93 |
} |
| 78 | 94 |
|
| 79 | 95 |
v = this.getStringParameterValue("negativeFilters").toString();
|
| 80 |
if (v.contains("=")) {
|
|
| 81 |
this.negativeFilters = v; |
|
| 82 |
} else {
|
|
| 83 |
this.negativeFilters = ""; |
|
| 96 |
this.negativeFilters = new LinkedHashMap<String, String>(); |
|
| 97 |
if (v != null && v.length() > 0) {
|
|
| 98 |
Properties props = new Properties(); |
|
| 99 |
props.load(new StringReader(v)); |
|
| 100 |
|
|
| 101 |
for (Object k : props.keySet()) negativeFilters.put(k.toString(), props.get(k.toString()).toString()); |
|
| 84 | 102 |
} |
| 85 | 103 |
|
| 86 | 104 |
// v = this.getStringParameterValue("positiveFilters").toString();
|
| ... | ... | |
| 172 | 190 |
} |
| 173 | 191 |
} |
| 174 | 192 |
} |
| 175 |
|
|
| 176 |
|
|
| 177 | 193 |
|
| 178 |
if (negativeFilters.length() > 0 && pColumns.size() > 0) {
|
|
| 194 |
if (negativeFilters.size() > 0 && pColumns.size() > 0) {
|
|
| 179 | 195 |
|
| 180 | 196 |
ArrayList<String> columnNames = new ArrayList<>(pColumns.size()); |
| 181 | 197 |
for (StructuralUnitProperty p : pColumns) columnNames.add(p.getName()); |
| 182 | 198 |
|
| 183 |
String[] filters = negativeFilters.split(";");
|
|
| 184 |
|
|
| 185 | 199 |
ArrayList<String> keys = new ArrayList<>(result.keySet()); |
| 186 | 200 |
for (String text : keys) {
|
| 187 | 201 |
|
| 188 |
for (String negativeFilter : filters) {
|
|
| 189 |
String[] split = negativeFilter.split("=", 2);
|
|
| 190 |
if (split.length == 2 |
|
| 191 |
&& columnNames.contains(split[0]) |
|
| 192 |
&& result.get(text).get(columnNames.indexOf(split[0])).matches(split[1])) {
|
|
| 202 |
for (String negativeFilter : negativeFilters.keySet()) {
|
|
| 203 |
if (columnNames.contains(negativeFilter) |
|
| 204 |
&& result.get(text).get(columnNames.indexOf(negativeFilter)).matches(negativeFilters.get(negativeFilter))) {
|
|
| 193 | 205 |
// remove this line |
| 194 | 206 |
result.remove(text); |
| 195 | 207 |
break; |
| TXM/trunk/bundles/org.txm.texts.rcp/src/org/txm/texts/rcp/TextsViewEditor.java (revision 3947) | ||
|---|---|---|
| 1 | 1 |
package org.txm.texts.rcp; |
| 2 | 2 |
|
| 3 | 3 |
import java.util.ArrayList; |
| 4 |
import java.util.Collections; |
|
| 5 |
import java.util.LinkedHashMap; |
|
| 4 | 6 |
import java.util.List; |
| 5 | 7 |
|
| 6 | 8 |
import org.eclipse.e4.ui.workbench.modeling.EModelService; |
| ... | ... | |
| 18 | 20 |
import org.eclipse.swt.graphics.Point; |
| 19 | 21 |
import org.eclipse.swt.layout.GridData; |
| 20 | 22 |
import org.eclipse.swt.layout.GridLayout; |
| 21 |
import org.eclipse.swt.widgets.Label; |
|
| 22 | 23 |
import org.eclipse.swt.widgets.TableColumn; |
| 23 | 24 |
import org.txm.Toolbox; |
| 24 | 25 |
import org.txm.core.results.Parameter; |
| ... | ... | |
| 31 | 32 |
import org.txm.rcp.editors.TableKeyListener; |
| 32 | 33 |
import org.txm.rcp.editors.TableLinesViewerComparator; |
| 33 | 34 |
import org.txm.rcp.editors.listeners.ComputeSelectionListener; |
| 35 |
import org.txm.rcp.swt.HashMapWidget; |
|
| 34 | 36 |
import org.txm.rcp.swt.widget.PropertiesSelector; |
| 35 | 37 |
import org.txm.rcp.utils.SWTEditorsUtils; |
| 36 | 38 |
import org.txm.searchengine.cqp.corpus.StructuralUnitProperty; |
| ... | ... | |
| 42 | 44 |
PropertiesSelector<StructuralUnitProperty> propertiesSelector; |
| 43 | 45 |
|
| 44 | 46 |
@Parameter(key = "negativeFilters") |
| 45 |
org.eclipse.swt.widgets.Text negativeFiltersText;
|
|
| 47 |
HashMapWidget negativeFiltersText;
|
|
| 46 | 48 |
|
| 47 | 49 |
TableViewer viewer; |
| 48 | 50 |
// HashMap<String, TableViewerColumn> columns = new HashMap<String, TableViewerColumn>(); |
| ... | ... | |
| 56 | 58 |
|
| 57 | 59 |
this.getMainParametersComposite().getLayout().numColumns = 10; |
| 58 | 60 |
|
| 59 |
propertiesSelector = new PropertiesSelector<>(this.getMainParametersComposite()); |
|
| 60 | 61 |
ArrayList<StructuralUnitProperty> properties = new ArrayList<>(getResult().getCorpus().getStructuralUnitProperties("text"));
|
| 61 | 62 |
for (int i = 0 ; i < properties.size() ; i++) {
|
| 62 |
if (properties.get(i).getName().equals("id")) {
|
|
| 63 |
if (properties.get(i).getName().equals("id") || properties.get(i).getName().equals("project")) {
|
|
| 63 | 64 |
properties.remove(i); |
| 64 | 65 |
break; |
| 65 | 66 |
} |
| 66 | 67 |
} |
| 68 |
Collections.sort(properties); |
|
| 69 |
|
|
| 70 |
ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this); |
|
| 71 |
|
|
| 72 |
propertiesSelector = new PropertiesSelector<>(this.getMainParametersComposite(), "Metadata"); |
|
| 67 | 73 |
propertiesSelector.setProperties(properties); |
| 68 |
ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this); |
|
| 69 | 74 |
propertiesSelector.addSelectionListener(computeSelectionListener); |
| 70 |
|
|
| 71 |
new Label(this.getMainParametersComposite(), SWT.NONE).setText("Negative filters (p1=v1;p2=v2)");
|
|
| 72 |
|
|
| 73 |
negativeFiltersText = new org.eclipse.swt.widgets.Text(this.getMainParametersComposite(), SWT.BORDER); |
|
| 74 |
negativeFiltersText.addSelectionListener(computeSelectionListener); |
|
| 75 |
GridData gdata = new GridData(GridData.FILL, GridData.CENTER, true, false); |
|
| 76 |
gdata.minimumWidth = 300; |
|
| 75 |
|
|
| 76 |
negativeFiltersText = new HashMapWidget(this.getMainParametersComposite(), SWT.NONE, "Negative filters: "); |
|
| 77 |
//negativeFiltersText.addSelectionListener(computeSelectionListener); |
|
| 78 |
GridData gdata = new GridData(GridData.FILL, GridData.FILL, false, false); |
|
| 77 | 79 |
negativeFiltersText.setLayoutData(gdata); |
| 80 |
LinkedHashMap<String, String> defaultValues = new LinkedHashMap<String, String>(); |
|
| 81 |
for (StructuralUnitProperty sup : properties) {
|
|
| 82 |
defaultValues.put(sup.getName(), ""); |
|
| 83 |
} |
|
| 84 |
negativeFiltersText.setDefaultValues(defaultValues); |
|
| 78 | 85 |
|
| 79 | 86 |
viewer = new TableViewer(this.getResultArea(), SWT.MULTI|SWT.VIRTUAL); |
| 80 | 87 |
viewer.getTable().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); |
| TXM/trunk/bundles/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java (revision 3947) | ||
|---|---|---|
| 39 | 39 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
| 40 | 40 |
import org.txm.searchengine.cqp.clientExceptions.UnexpectedAnswerException; |
| 41 | 41 |
import org.txm.searchengine.cqp.corpus.query.CQLQuery; |
| 42 |
import org.txm.searchengine.cqp.corpus.query.MatchUtils; |
|
| 43 | 42 |
import org.txm.searchengine.cqp.serverException.CqiServerError; |
| 44 | 43 |
import org.txm.utils.logger.Log; |
| 45 | 44 |
|
| ... | ... | |
| 57 | 56 |
/** The structural unit. */ |
| 58 | 57 |
private StructuralUnit structuralUnit; |
| 59 | 58 |
|
| 60 |
|
|
| 61 |
|
|
| 62 | 59 |
/** |
| 63 | 60 |
* Instantiates a new structural unit property. |
| 64 | 61 |
* |
| ... | ... | |
| 66 | 63 |
* |
| 67 | 64 |
* @param structuralUnit the structural unit |
| 68 | 65 |
* @param name the name |
| 69 |
* @param corpus the corpus |
|
| 70 |
* {@link StructuralUnit#getProperty(String)}
|
|
| 66 |
* @param corpus the corpus {@link StructuralUnit#getProperty(String)}
|
|
| 71 | 67 |
*/ |
| 72 | 68 |
public StructuralUnitProperty(StructuralUnit structuralUnit, String name, CQPCorpus corpus) {
|
| 69 |
|
|
| 73 | 70 |
super(name, corpus); |
| 74 | 71 |
this.structuralUnit = structuralUnit; |
| 75 | 72 |
} |
| ... | ... | |
| 80 | 77 |
* @return the structural unit |
| 81 | 78 |
*/ |
| 82 | 79 |
public StructuralUnit getStructuralUnit() {
|
| 80 |
|
|
| 83 | 81 |
return structuralUnit; |
| 84 | 82 |
} |
| 85 | 83 |
|
| ... | ... | |
| 90 | 88 |
*/ |
| 91 | 89 |
@Override |
| 92 | 90 |
public String getFullName() {
|
| 91 |
|
|
| 93 | 92 |
return structuralUnit.getName() + "_" + this.getName(); //$NON-NLS-1$ |
| 94 | 93 |
} |
| 95 | 94 |
|
| ... | ... | |
| 100 | 99 |
* @return the full name |
| 101 | 100 |
*/ |
| 102 | 101 |
public String asFullNameString() {
|
| 102 |
|
|
| 103 | 103 |
return this.structuralUnit.getName() + this.asString(); |
| 104 | 104 |
} |
| 105 | 105 |
|
| ... | ... | |
| 111 | 111 |
* @return |
| 112 | 112 |
*/ |
| 113 | 113 |
public static String asFullNameString(List<StructuralUnitProperty> properties) {
|
| 114 |
|
|
| 114 | 115 |
String str = ""; ///$NON-NLS-1$ |
| 115 | 116 |
for (int i = 0; i < properties.size(); i++) {
|
| 116 | 117 |
if (i > 0) {
|
| ... | ... | |
| 131 | 132 |
* @throws CqiClientException the cqi client exception |
| 132 | 133 |
*/ |
| 133 | 134 |
public List<String> getValues(CQPCorpus subcorpus) throws CqiClientException {
|
| 135 |
|
|
| 134 | 136 |
try {
|
| 135 | 137 |
AbstractCqiClient cqiClient = CorpusManager.getCorpusManager().getCqiClient(); |
| 136 | 138 |
return cqiClient.getData(this, subcorpus); |
| ... | ... | |
| 163 | 165 |
* @throws CqiClientException the cqi client exception |
| 164 | 166 |
*/ |
| 165 | 167 |
public List<String> getValues(CQPCorpus subcorpus, int number) throws CqiClientException {
|
| 168 |
|
|
| 166 | 169 |
try {
|
| 167 | 170 |
AbstractCqiClient cqiClient = CorpusManager.getCorpusManager().getCqiClient(); |
| 168 | 171 |
return cqiClient.getData(this, number); |
| ... | ... | |
| 191 | 194 |
* @throws CqiClientException the cqi client exception |
| 192 | 195 |
*/ |
| 193 | 196 |
public List<String> getValues() throws CqiClientException {
|
| 197 |
|
|
| 194 | 198 |
return getValues(this.getCorpus()); |
| 195 | 199 |
} |
| 196 | 200 |
|
| ... | ... | |
| 202 | 206 |
* @throws CqiClientException the cqi client exception |
| 203 | 207 |
*/ |
| 204 | 208 |
public List<String> getOrderedValues() throws CqiClientException {
|
| 209 |
|
|
| 205 | 210 |
List<String> values = getValues(this.getCorpus()); |
| 206 | 211 |
Collections.sort(values); |
| 207 | 212 |
return values; |
| ... | ... | |
| 216 | 221 |
* @throws CqiClientException the cqi client exception |
| 217 | 222 |
*/ |
| 218 | 223 |
public List<String> getOrderedValues(CQPCorpus corpus) throws CqiClientException {
|
| 224 |
|
|
| 219 | 225 |
List<String> values = getValues(corpus); |
| 220 | 226 |
Collections.sort(values); |
| 221 | 227 |
return values; |
| ... | ... | |
| 228 | 234 |
* @return the number of values in this corpus, -1 if an error occured |
| 229 | 235 |
*/ |
| 230 | 236 |
public Integer getNumberOfValues(CQPCorpus corpus) {
|
| 237 |
|
|
| 231 | 238 |
try {
|
| 232 | 239 |
QueryResult tmp = corpus.query(new CQLQuery("<" + this.getFullName() + ">[]"), UUID.randomUUID().toString(), false); //$NON-NLS-1$ //$NON-NLS-2$
|
| 233 | 240 |
int ret = tmp.getNMatch(); |
| ... | ... | |
| 248 | 255 |
* @return |
| 249 | 256 |
*/ |
| 250 | 257 |
public static List<StructuralUnitProperty> stringToProperties(CQPCorpus corpus, String str) {
|
| 258 |
|
|
| 251 | 259 |
ArrayList<StructuralUnitProperty> structs = new ArrayList<>(); |
| 252 | 260 |
if (str == null || str.length() == 0) {
|
| 253 | 261 |
return structs; |
| ... | ... | |
| 286 | 294 |
* @throws CqiClientException |
| 287 | 295 |
*/ |
| 288 | 296 |
public static StructuralUnitProperty stringToStructuralUnitProperty(CQPCorpus corpus, String str) throws CqiClientException {
|
| 297 |
|
|
| 289 | 298 |
if (str == null) {
|
| 290 | 299 |
return null; |
| 291 | 300 |
} |
| ... | ... | |
| 304 | 313 |
} |
| 305 | 314 |
|
| 306 | 315 |
public String cpos2Str(int position) throws UnexpectedAnswerException, IOException, CqiServerError {
|
| 316 |
|
|
| 307 | 317 |
AbstractCqiClient cqiClient = CorpusManager.getCorpusManager().getCqiClient(); |
| 308 | 318 |
return cqiClient.getSingleData(this, new int[] { position }).get(0);
|
| 309 | 319 |
} |
| 310 | 320 |
|
| 311 | 321 |
public String[] cpos2Str(int[] positions) throws UnexpectedAnswerException, IOException, CqiServerError {
|
| 322 |
|
|
| 312 | 323 |
AbstractCqiClient cqiClient = CorpusManager.getCorpusManager().getCqiClient(); |
| 313 | 324 |
return cqiClient.getSingleData(this, positions).toArray(new String[positions.length]); |
| 314 | 325 |
} |
| ... | ... | |
| 322 | 333 |
* @throws CqiClientException |
| 323 | 334 |
*/ |
| 324 | 335 |
public int getNValues() throws IOException, CqiServerError, CqiClientException {
|
| 336 |
|
|
| 325 | 337 |
return getValues().size(); |
| 326 | 338 |
} |
| 327 | 339 |
|
| ... | ... | |
| 334 | 346 |
* @throws CqiClientException |
| 335 | 347 |
*/ |
| 336 | 348 |
public String[] getValuesAsStrings() throws IOException, CqiServerError, CqiClientException {
|
| 349 |
|
|
| 337 | 350 |
List<String> values = getValues(); |
| 338 | 351 |
return values.toArray(new String[values.size()]); |
| 339 | 352 |
} |
Formats disponibles : Unified diff