You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by jo...@apache.org on 2011/08/01 15:54:22 UTC
svn commit: r1152774 [6/6] - in /uima/sandbox/trunk/TextMarker:
org.apache.uima.tm.cev.feature/ org.apache.uima.tm.cev.html.feature/
org.apache.uima.tm.cev.html/ org.apache.uima.tm.cev.html/META-INF/
org.apache.uima.tm.cev.html/bin/ org.apache.uima.tm....
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPalettePage.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPalettePage.java?rev=1152774&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPalettePage.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPalettePage.java Mon Aug 1 13:53:56 2011
@@ -0,0 +1,522 @@
+package org.apache.uima.tm.cev.views.palette;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.uima.cas.Type;
+import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.tm.cev.CEVPlugin;
+import org.apache.uima.tm.cev.data.CEVData;
+import org.apache.uima.tm.cev.data.CEVDocument;
+import org.apache.uima.tm.cev.editor.CEVViewer;
+import org.apache.uima.tm.cev.extension.ICEVEditor;
+import org.apache.uima.tm.cev.preferences.CEVPreferenceConstants;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.PaletteData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.layout.RowData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.part.IPageSite;
+import org.eclipse.ui.part.Page;
+
+
+/**
+ * CEVAnnotationMarkerPalettePage
+ *
+ * @author Martin Toepfer
+ */
+public class CEVAnnotationMarkerPalettePage extends Page implements
+ ICEVAnnotationMarkerPalettePage, ICEVEditor {
+
+ /**
+ * Wrapperklasse fuer Typ-Buttons.
+ *
+ * @author Felix
+ *
+ */
+ private class AnnotationTypeButtonPanel {
+ private Composite composite;
+
+ private Button button;
+
+ private Type type;
+
+ private static final int LETTER_WIDTH_FACTOR = 8;
+
+ private static final int BUTTON_WIDTH_OFFSET = 25;
+
+ private static final int ICON_SIZE = 10;
+
+ private static final int MAX_TITLE_LENGTH = 40;
+
+ /**
+ * Konstruktor.
+ *
+ * @param parent
+ * @param type
+ */
+ private AnnotationTypeButtonPanel(Composite parent, Type type) {
+ this(parent, type, MAX_TITLE_LENGTH);
+ }
+
+ /**
+ * Konstruktor.
+ *
+ * @param parent
+ * @param type
+ */
+ private AnnotationTypeButtonPanel(Composite parent, Type type, int maxTitleLenght) {
+ // type merken
+ this.type = type;
+ // composite zusammensetzen
+ composite = new Composite(parent, SWT.NULL | SWT.LEFT);
+ composite.setLayout(new RowLayout(SWT.HORIZONTAL));
+ // toggleButton, text links ausrichten:
+ button = new Button(composite, SWT.TOGGLE | SWT.LEFT);
+ // Text des Buttons setzen:
+ button.setText(type.getShortName());
+ final int width = BUTTON_WIDTH_OFFSET + maxTitleLenght * LETTER_WIDTH_FACTOR;
+ // initiale breite setzen:
+ button.setLayoutData(new RowData(width, SWT.DEFAULT));
+ button.setAlignment(SWT.LEFT);
+ // Farbe setzen
+ updateColor();
+
+ composite.layout(true);
+ }
+
+ private void updateColor() {
+ Color bgCol = new Color(composite.getDisplay(), getCurrentCEVData().getBackgroundColor(
+ this.type).getRGB());
+ // TODO Vordergrundfarbe ungenutzt
+ // Color fgCol = new Color(composite.getDisplay(), casData
+ // .getForegroundColor(type).getRGB());
+ RGB[] rgbs = { bgCol.getRGB() };
+ ImageData imd = new ImageData(ICON_SIZE, ICON_SIZE, 8, new PaletteData(rgbs));
+ Image image = new Image(composite.getDisplay(), imd);
+ button.setImage(image);
+ }
+
+ public Button getButton() {
+ return this.button;
+ }
+
+ public Type getType() {
+ return this.type;
+ }
+
+ /**
+ * Referenzen loesen und zum geloeschtwerden vorbereiten.
+ */
+ public void dispose() {
+ button.dispose();
+ composite.dispose();
+ type = null;
+ }
+
+ }
+
+ /**
+ * Vergleichsklasse fuer Typen.
+ *
+ * @author Felix
+ *
+ */
+ private class TypeComparator implements Comparator<Type> {
+ public int compare(Type type0, Type type1) {
+ return type0.getShortName().compareToIgnoreCase(type1.getShortName());
+ }
+
+ }
+
+ /**
+ * Wrapperklasse fuer Typ-Buttons.
+ *
+ * @author Felix
+ *
+ */
+ private class AnnotationTypeCheckButtonPanel {
+ private Composite composite;
+
+ private Button button;
+
+ private Type type;
+
+ private static final int LETTER_WIDTH_FACTOR = 8;
+
+ private static final int BUTTON_WIDTH_OFFSET = 25;
+
+ private static final int ICON_SIZE = 10;
+
+ private static final int MAX_TITLE_LENGTH = 40;
+
+ /**
+ * Konstruktor.
+ *
+ * @param parent
+ * @param type
+ */
+ private AnnotationTypeCheckButtonPanel(Composite parent, Type type) {
+ this(parent, type, MAX_TITLE_LENGTH);
+ }
+
+ /**
+ * Konstruktor.
+ *
+ * @param parent
+ * @param type
+ */
+ private AnnotationTypeCheckButtonPanel(Composite parent, Type type, int maxTitleLenght) {
+ // type merken
+ this.type = type;
+ // composite zusammensetzen
+ composite = new Composite(parent, SWT.NULL | SWT.LEFT);
+ composite.setLayout(new RowLayout(SWT.HORIZONTAL));
+ // toggleButton, text links ausrichten:
+ button = new Button(composite, SWT.TOGGLE | SWT.LEFT);
+ // Text des Buttons setzen:
+ button.setText(type.getShortName());
+ final int width = BUTTON_WIDTH_OFFSET + maxTitleLenght * LETTER_WIDTH_FACTOR;
+ // initiale breite setzen:
+ button.setLayoutData(new RowData(width, SWT.DEFAULT));
+ button.setAlignment(SWT.LEFT);
+ // Farbe setzen
+ updateColor();
+
+ composite.layout(true);
+ }
+
+ private void updateColor() {
+ Color backgroundColor = getCurrentCEVData().getBackgroundColor(this.type);
+ if (backgroundColor == null) {
+ backgroundColor = new Color(composite.getDisplay(), 128, 128, 128);
+ }
+ Color bgCol = new Color(composite.getDisplay(), backgroundColor.getRGB());
+ // TODO Vordergrundfarbe ungenutzt
+ // Color fgCol = new Color(composite.getDisplay(), casData
+ // .getForegroundColor(type).getRGB());
+ RGB[] rgbs = { bgCol.getRGB() };
+ ImageData imd = new ImageData(ICON_SIZE, ICON_SIZE, 8, new PaletteData(rgbs));
+ Image image = new Image(composite.getDisplay(), imd);
+ button.setImage(image);
+ }
+
+ public Button getButton() {
+ return this.button;
+ }
+
+ public Type getType() {
+ return this.type;
+ }
+
+ /**
+ * Referenzen loesen und zum geloeschtwerden vorbereiten.
+ */
+ public void dispose() {
+ button.dispose();
+ composite.dispose();
+ type = null;
+ }
+
+ }
+
+ // Scrolled Composite
+ private ScrolledComposite sc;
+
+ // die ganze Komponente
+ private Composite pane;
+
+ // zugrundeliegende Daten
+ private CEVDocument casDocument;
+
+ // Typen-Liste
+ private List<Type> types;
+
+ // ToggleButton-Liste
+ private List<AnnotationTypeCheckButtonPanel> toggleButtons = new ArrayList<AnnotationTypeCheckButtonPanel>();
+
+ private int current;
+
+ /**
+ * Konstruktor
+ *
+ * @param casView
+ * CASViewer
+ * @param casData
+ * CASData
+ */
+ public CEVAnnotationMarkerPalettePage(CEVViewer casView, CEVDocument casDocument, int index) {
+ super();
+ current = index;
+ // cas setzen
+ this.casDocument = casDocument;
+ // Als Listener fuer Changes an Annotationstypen anmelden
+ this.getCurrentCEVData().addAnnotationListener(this);
+ // Typen-Liste initialisieren:
+ types = new ArrayList<Type>();
+ updateTypes();
+ }
+
+ /**
+ * Filters the selected / toggled Buttons.
+ *
+ * @return selected / toggled Buttons.
+ */
+ public List<AnnotationTypeCheckButtonPanel> getToggledButtons() {
+ if (toggleButtons == null) {
+ return new ArrayList<AnnotationTypeCheckButtonPanel>();
+ }
+ List<AnnotationTypeCheckButtonPanel> toggledButtons = new ArrayList<AnnotationTypeCheckButtonPanel>();
+ for (AnnotationTypeCheckButtonPanel buttonP : toggleButtons) {
+ if (buttonP.getButton().getSelection()) {
+ toggledButtons.add(buttonP);
+ }
+ }
+ return toggledButtons;
+ }
+
+ /**
+ * Erstellt die Button-Liste aus der types-Liste neu.<br>
+ * In der Regel sollte vor Benutzung <i>updateTypes</i> aufgerufen werden.
+ */
+ private void updateControl(int maxTitleLength) {
+ // toggleButton Liste leeren, vorsicht - richtig aushaengen
+ for (AnnotationTypeCheckButtonPanel it : toggleButtons) {
+ it.dispose();
+ }
+ toggleButtons.clear();
+ // button-liste neu erstellen
+ for (Iterator<Type> iterator = types.iterator(); iterator.hasNext();) {
+ toggleButtons.add(new AnnotationTypeCheckButtonPanel(pane, iterator.next(), maxTitleLength));
+ }
+ pane.layout(true);
+ sc.setContent(pane);
+ sc.setMinSize(pane.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ // sc.layout(true);
+ }
+
+ /**
+ * Erstellt die Typenliste neu.<br>
+ * Danach sollte in der Regel <i>updateControl</i> aufgerufen werden.
+ */
+ private int updateTypes() {
+ if (this.getCurrentCEVData() == null) {
+ return 0;
+ }
+ // Iterator ueber types holen
+ Iterator typeIterator = this.getCurrentCEVData().getCAS().getTypeSystem().getTypeIterator();
+ // maximale Titellaenge
+ int maxTitleLength = 0;
+ // Liste leeren und mit aktuellen, relevanten types neu befuellen, sowie
+ // laengsten titel finden:
+ types.clear();
+
+ while (typeIterator.hasNext()) {
+ Type type = (Type) typeIterator.next();
+ if (!(type.getName().startsWith("de.uniwue.tm.textmarker.kernel.type")
+ || type.getName().startsWith("de.uniwue.tm.type")
+ || type.getName().startsWith("uima.cas") || type.getName().startsWith("uima.tcas"))) {
+ types.add(type);
+ // maxTitelSuche:
+ int typeShortName = type.getShortName().length();
+ if (typeShortName > maxTitleLength) {
+ maxTitleLength = typeShortName;
+ }
+ }
+ }
+ // Liste sortieren
+ Collections.sort(types, new TypeComparator());
+ return maxTitleLength;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.Page#init(org.eclipse.ui.part.IPageSite)
+ */
+ @Override
+ public void init(IPageSite pageSite) {
+ super.init(pageSite);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.Page#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ public void createControl(Composite parent) {
+
+ sc = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
+ pane = new Composite(sc, SWT.NULL);
+ pane.setLayout(new RowLayout(SWT.VERTICAL));
+ // Properties for the ScrolledComposite
+
+ sc.setExpandHorizontal(true);
+ sc.setExpandVertical(true);
+ sc.setContent(pane);
+ sc.setMinSize(pane.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ // sorgt fuer aktuelle types-Liste und Buttons:
+ casDataChanged();
+ }
+
+ private void annotateAllForSelection(int start, int end) {
+ // fuer alle aktivierten Typen Annotationen setzen:
+ List<AnnotationTypeCheckButtonPanel> toggledButtons = getToggledButtons();
+ for (AnnotationTypeCheckButtonPanel buttonP : toggledButtons) {
+ boolean update = toggledButtons.indexOf(buttonP) == toggledButtons.size() - 1;
+ annotateSingleForSelection(start, end, buttonP.getType(), update);
+ }
+ }
+
+ private void annotateSingleForSelection(int start, int end, Type type, boolean update) {
+ if (type == null) {
+ return;
+ }
+ getCurrentCEVData().addAnnotation(type, start, end, update);
+ }
+
+ /**
+ * CAS hat sich geaendert.<br>
+ * Daten und GUI updaten.
+ *
+ * @param casData
+ * CAS
+ */
+ public void casDataChanged() {
+ // casData updaten
+ // types updaten und max.Titellaenge ermitteln
+ final int maxTitleLength = updateTypes();
+ // Button-Liste updaten
+ updateControl(maxTitleLength);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.Page#dispose()
+ */
+ @Override
+ public void dispose() {
+ super.dispose();
+ sc.dispose();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.Page#getControl()
+ */
+ @Override
+ public Control getControl() {
+ return sc;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.Page#setFocus()
+ */
+ @Override
+ public void setFocus() {
+ sc.setFocus();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.tm.cev.data.ICEVAnnotationListener#annotationStateChanged(org
+ * .apache.uima.cas.Type)
+ */
+ public void annotationStateChanged(Type type) {
+ // this.casDataChanged(casData);
+ }
+
+ protected CEVData getCurrentCEVData() {
+ return casDocument.getCASData(current);
+ }
+
+ public void viewChanged(int newIndex) {
+ current = newIndex;
+ casDataChanged();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.tm.cev.data.ICEVAnnotationListener#colorChanged(org.apache. uima.cas.Type)
+ */
+ public void colorChanged(Type type) {
+ for (Iterator<AnnotationTypeCheckButtonPanel> iterator = toggleButtons.iterator(); iterator
+ .hasNext();) {
+ AnnotationTypeCheckButtonPanel button = iterator.next();
+ if (button.getType().equals(type)) {
+ button.updateColor();
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.tm.cev.data.ICEVAnnotationListener#annotationAdded(org.apache
+ * .uima.cas.text.AnnotationFS)
+ */
+ public void annotationsAdded(List<AnnotationFS> annots) {
+ // Annotationen uninteressant
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.tm.cev.data.ICEVAnnotationListener#annotationRemoved(org.apache
+ * .uima.cas.text.AnnotationFS)
+ */
+ public void annotationsRemoved(List<AnnotationFS> annots) {
+ // Annotationen uninteressant
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.tm.cev.data.ICEVAnnotationListener#annotationStateChanged(org
+ * .apache.uima.cas.text.AnnotationFS)
+ */
+ public void annotationStateChanged(AnnotationFS annot) {
+ // Annotationen uninteressant
+ }
+
+ public void textSelected(int start, int end) {
+ String text = getCurrentCEVData().getDocumentText().substring(start, end);
+ IPreferenceStore store = CEVPlugin.getDefault().getPreferenceStore();
+ boolean trim = store.getBoolean(CEVPreferenceConstants.P_ANNOTATION_EDITOR_TRIM);
+
+ if (trim) {
+ String trimmed = text.trim();
+
+ int indexOf = text.indexOf(trimmed);
+
+ int trimmedStart = start + indexOf;
+ int trimmedEnd = end - (text.length() - (indexOf + trimmed.length()));
+
+ start = trimmedStart;
+ end = trimmedEnd;
+ }
+ annotateAllForSelection(start, end);
+ }
+
+ public void casChanged(CEVDocument casDocument) {
+ this.casDocument = casDocument;
+ }
+}
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPalettePage.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPalettePage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPaletteView.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPaletteView.java?rev=1152774&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPaletteView.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPaletteView.java Mon Aug 1 13:53:56 2011
@@ -0,0 +1,107 @@
+package org.apache.uima.tm.cev.views.palette;
+
+import org.apache.uima.tm.cev.views.ICEVViewPage;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.internal.views.ViewsPlugin;
+import org.eclipse.ui.part.IPage;
+import org.eclipse.ui.part.MessagePage;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.ui.part.PageBookView;
+
+
+/**
+ * CEVAnnotationMarkerPaletteView des CASViewer
+ *
+ * @author Marco Nehmeier
+ */
+public class CEVAnnotationMarkerPaletteView extends PageBookView {
+
+ /**
+ * Text wenn kein View vom Editor zur Verfuegung gestellt wird.
+ */
+ private static final String VIEW_IS_NOT_AVAILABLE = "View is not available.";
+
+ /**
+ * Defaultkonstruktor.
+ */
+ public CEVAnnotationMarkerPaletteView() {
+ super();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.PageBookView#createDefaultPage(org.eclipse.ui.part .PageBook)
+ */
+ @Override
+ protected IPage createDefaultPage(PageBook book) {
+ // MessagePage wenn der View nicht zur Verfuegung steht
+ MessagePage page = new MessagePage();
+ initPage(page);
+ page.createControl(book);
+ page.setMessage(VIEW_IS_NOT_AVAILABLE);
+ return page;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.PageBookView#doCreatePage(org.eclipse.ui.IWorkbenchPart )
+ */
+ @Override
+ protected PageRec doCreatePage(IWorkbenchPart part) {
+ // vom Plugin holen
+ Object obj = ViewsPlugin.getAdapter(part, ICEVAnnotationMarkerPalettePage.class, false);
+
+ // Wenn ICASViewPage
+ if (obj instanceof ICEVViewPage) {
+ ICEVViewPage page = (ICEVViewPage) obj;
+
+ // Control erzeugen
+ page.createControl(getPageBook());
+ return new PageRec(part, page);
+ }
+
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.PageBookView#doDestroyPage(org.eclipse.ui.IWorkbenchPart ,
+ * org.eclipse.ui.part.PageBookView.PageRec)
+ */
+ @Override
+ protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
+ pageRecord.page.dispose();
+ pageRecord.dispose();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.PageBookView#getBootstrapPart()
+ */
+ @Override
+ protected IWorkbenchPart getBootstrapPart() {
+ IWorkbenchPage page = getSite().getPage();
+ if (page != null) {
+ return page.getActiveEditor();
+ }
+
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.PageBookView#isImportant(org.eclipse.ui.IWorkbenchPart )
+ */
+ @Override
+ protected boolean isImportant(IWorkbenchPart part) {
+ return (part instanceof IEditorPart);
+ }
+
+}
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPaletteView.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/CEVAnnotationMarkerPaletteView.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/ICEVAnnotationMarkerPalettePage.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/ICEVAnnotationMarkerPalettePage.java?rev=1152774&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/ICEVAnnotationMarkerPalettePage.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/ICEVAnnotationMarkerPalettePage.java Mon Aug 1 13:53:56 2011
@@ -0,0 +1,12 @@
+package org.apache.uima.tm.cev.views.palette;
+
+import org.apache.uima.tm.cev.views.ICEVViewPage;
+
+/**
+ * Interface fuer eine EditorPage im CASViewer
+ *
+ * @author Martin Toepfer
+ */
+public interface ICEVAnnotationMarkerPalettePage extends ICEVViewPage {
+
+}
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/ICEVAnnotationMarkerPalettePage.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/palette/ICEVAnnotationMarkerPalettePage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionPage.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionPage.java?rev=1152774&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionPage.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionPage.java Mon Aug 1 13:53:56 2011
@@ -0,0 +1,104 @@
+package org.apache.uima.tm.cev.views.selection;
+
+import java.util.List;
+
+import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.tm.cev.data.CEVDocument;
+import org.apache.uima.tm.cev.data.ICEVAnnotationSelectionListener;
+import org.apache.uima.tm.cev.data.tree.CEVAnnotationTreeNode;
+import org.apache.uima.tm.cev.data.tree.CEVTypeTreeNode;
+import org.apache.uima.tm.cev.data.tree.ICEVRootTreeNode;
+import org.apache.uima.tm.cev.data.tree.ICEVTreeNode;
+import org.apache.uima.tm.cev.editor.CEVViewer;
+import org.apache.uima.tm.cev.views.CEVAnnotationTreeViewPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+
+
+/**
+ * Page fuer einen SelectionView im CASViewer
+ *
+ * @author Marco Nehmeier
+ */
+public class CEVSelectionPage extends CEVAnnotationTreeViewPage implements ICEVSelectionPage,
+ ICEVAnnotationSelectionListener {
+
+ private int offset;
+
+ /**
+ * Konstruktor
+ *
+ * @param casView
+ * CASViewer
+ * @param casData
+ * CASDatat
+ */
+ public CEVSelectionPage(CEVViewer casView, CEVDocument casDocument, int index) {
+ super(casView, casDocument, index);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.uniwue.casviewer.data.ICASAnnotationSelectionListener#newSelection (int)
+ */
+ public void newSelection(int offset) {
+ this.offset = offset;
+
+ // Selektionen im Tree aktualisieren
+ ICEVRootTreeNode annotationOrderedTree = getCasData().getAnnotationOrderedTree(offset,
+ manualTypeFilter);
+ getTreeViewer().setInput(annotationOrderedTree);
+
+ Object input = getTreeViewer().getInput();
+
+ if (input instanceof ICEVRootTreeNode)
+ for (ICEVTreeNode n : ((ICEVRootTreeNode) input).getNodes())
+ if (n instanceof CEVAnnotationTreeNode)
+ getTreeViewer().setChecked(n,
+ getCasData().isChecked(((CEVAnnotationTreeNode) n).getAnnotation()));
+ else if (n instanceof CEVTypeTreeNode) {
+ if (getCasData().isGrayed(n.getType()))
+ getTreeViewer().setGrayChecked(n, true);
+ else if (getCasData().isChecked(n.getType())) {
+ getTreeViewer().setGrayed(n, false);
+ getTreeViewer().setChecked(n, true);
+ } else {
+ getTreeViewer().setGrayChecked(n, false);
+ }
+ }
+
+ // getTreeViewer().expandAll();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.tm.cev.views.CEVAnnotationTreeViewPage#annotationAdded(org.
+ * apache.uima.cas.text.AnnotationFS)
+ */
+ @Override
+ public void annotationsAdded(List<AnnotationFS> annots) {
+ newSelection(offset);
+ // getTreeViewer().getTree().removeAll();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.tm.cev.views.CEVAnnotationTreeViewPage#annotationRemoved(org
+ * .apache.uima.cas.text.AnnotationFS)
+ */
+ @Override
+ public void annotationsRemoved(List<AnnotationFS> annots) {
+ newSelection(offset);
+ // getTreeViewer().getTree().removeAll();
+ }
+
+ public void handleEvent(Event event) {
+ if (event.widget == filterTextField && event.type == SWT.Modify) {
+ manualTypeFilter = filterTextField.getText();
+ newSelection(offset);
+ }
+ }
+}
\ No newline at end of file
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionPage.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionPage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionView.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionView.java?rev=1152774&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionView.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionView.java Mon Aug 1 13:53:56 2011
@@ -0,0 +1,31 @@
+package org.apache.uima.tm.cev.views.selection;
+
+import org.apache.uima.tm.cev.views.CEVPageBookView;
+import org.eclipse.ui.IWorkbenchPart;
+
+
+/**
+ * SelektionView fuer den CASViewer
+ *
+ * @author Marco Nehmeier
+ */
+public class CEVSelectionView extends CEVPageBookView {
+
+ /**
+ * Default-Konstruktor
+ */
+ public CEVSelectionView() {
+ super();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.PageBookView#doCreatePage(org.eclipse.ui.IWorkbenchPart )
+ */
+ @Override
+ protected PageRec doCreatePage(IWorkbenchPart part) {
+ // Erzeugt die Page
+ return doCreatePage(part, ICEVSelectionPage.class);
+ }
+}
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionView.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionView.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionViewFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionViewFactory.java?rev=1152774&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionViewFactory.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionViewFactory.java Mon Aug 1 13:53:56 2011
@@ -0,0 +1,21 @@
+package org.apache.uima.tm.cev.views.selection;
+
+import org.apache.uima.tm.cev.data.CEVDocument;
+import org.apache.uima.tm.cev.editor.CEVViewer;
+import org.apache.uima.tm.cev.extension.ICEVView;
+import org.apache.uima.tm.cev.extension.ICEVViewFactory;
+
+public class CEVSelectionViewFactory implements ICEVViewFactory {
+
+ public CEVSelectionViewFactory() {
+ }
+
+ public ICEVView createView(CEVViewer viewer, CEVDocument cevDocument, int index) {
+ return new CEVSelectionPage(viewer, cevDocument, index);
+ }
+
+ public Class<?> getAdapterInterface() {
+ return ICEVSelectionPage.class;
+ }
+
+}
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionViewFactory.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/CEVSelectionViewFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/ICEVSelectionPage.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/ICEVSelectionPage.java?rev=1152774&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/ICEVSelectionPage.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/ICEVSelectionPage.java Mon Aug 1 13:53:56 2011
@@ -0,0 +1,11 @@
+package org.apache.uima.tm.cev.views.selection;
+
+import org.apache.uima.tm.cev.views.ICEVViewPage;
+
+/**
+ * Interface fuer eine SelektionPage im CASViewer
+ *
+ * @author Marco Nehmeier
+ */
+public interface ICEVSelectionPage extends ICEVViewPage {
+}
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/ICEVSelectionPage.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.cev/src/main/java/org/apache/uima/tm/cev/views/selection/ICEVSelectionPage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain