From 9f1a25cdcd2c8907e0d14b9c50eb52c8e1aa38d0 Mon Sep 17 00:00:00 2001 From: tu Date: Mon, 8 Oct 2018 11:29:27 +0200 Subject: [PATCH 1/2] annotation of speaker is now possible for every STWR; annotation of speaker is now possible for speakers outside STWRs; annotation of intExpr is now possible for reported STWRs --- .../athen/rwview/part/RedeWiedergabeView.java | 185 ++++++++++++------ .../rwview/ui/RwFrameTableComposite.java | 2 +- .../athen/rwview/ui/RwStwrTableComposite.java | 9 + 3 files changed, 132 insertions(+), 64 deletions(-) diff --git a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java index 8a133f6..c874d15 100644 --- a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java +++ b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java @@ -909,68 +909,93 @@ public class RedeWiedergabeView extends AEditorSubordinateViewPart { } - - // methods that are required by the view public void createSpeaker() { - int counter = 0; - AnnotationFS selected = null; - if (editor.getSelectionOfVisibleAnnotations().size() > 0) { - for (AnnotationFS anno : editor.getSelectionOfVisibleAnnotations()) { - if (anno.getType().equals(speakerType)) { - selected = anno; + boolean speakerIDFlag = false; + for (AnnotationFS speaker : speakerList){ + if (speaker.getFeatureValueAsString(speakerIDFeat) == null){ + JFrame jFrame = new JFrame("Information"); + JOptionPane.showMessageDialog(jFrame, "Please assign an ID to the speaker " + "\"" + speaker.getFeatureValueAsString(speakerFeat) + "\"" + ".", "Attention", JOptionPane.WARNING_MESSAGE); + speakerIDFlag = true; + } + } + + if (speakerIDFlag == false) + { + + //int counter = 0; + AnnotationFS selected = null; + if (editor.getSelectionOfVisibleAnnotations().size() > 0) { + for (AnnotationFS anno : editor.getSelectionOfVisibleAnnotations()) { + if (anno.getType().equals(speakerType)) { + selected = anno; + } } } - } - // remove vorschlag - CAS cas = editor.getCas(); - Type t = speakerType; - // get the selection + // remove vorschlag + CAS cas = editor.getCas(); + Type t = speakerType; + // get the selection - if (selected == null) { + if (selected == null) { - Point selection = editor.getActualSelectedText(); - if (selection == null || selection.x == selection.y) { - return; - } - AnnotationFS anno = cas.createAnnotation(t, selection.x, selection.y); - - anno.getFeatureValueAsString(speakerFeat); - String speakerFeatValue = anno.getFeatureValueAsString(speakerFeat); - speakerFeatValue = anno.getCoveredText(); - updateAnnotation(anno, speakerFeat, speakerFeatValue, true); - - for (AnnotationFS frame : frameList) - { - if (anno.getBegin() >= frame.getBegin() && anno.getEnd() <= frame.getEnd()) - { - anno.getFeatureValueAsString(speakerFeat); - addAnnotation(anno); - updateAnnotation(anno, speakerIDFeat, frame.getFeatureValueAsString(frameIDFeat), true); + Point selection = editor.getActualSelectedText(); + if (selection == null || selection.x == selection.y) { + return; } - else + AnnotationFS anno = cas.createAnnotation(t, selection.x, selection.y); + + anno.getFeatureValueAsString(speakerFeat); + String speakerFeatValue = anno.getFeatureValueAsString(speakerFeat); + speakerFeatValue = anno.getCoveredText(); + updateAnnotation(anno, speakerFeat, speakerFeatValue, true); + addAnnotation(anno); + + for (AnnotationFS frame : frameList) { - counter++; + if (anno.getBegin() >= frame.getBegin() && anno.getEnd() <= frame.getEnd()) + { + anno.getFeatureValueAsString(speakerFeat); + addAnnotation(anno); + updateAnnotation(anno, speakerIDFeat, frame.getFeatureValueAsString(frameIDFeat), true); + } + + for (AnnotationFS stwr : stwrList){ + if (anno.getBegin() >= stwr.getBegin() && anno.getEnd() <= stwr.getEnd()) + { + anno.getFeatureValueAsString(speakerFeat); + addAnnotation(anno); + updateAnnotation(anno, speakerIDFeat, stwr.getFeatureValueAsString(stwrIDFeat), true); + } } - if (counter == frameList.size()) - { - JFrame jFrame = new JFrame("Information"); - JOptionPane.showMessageDialog(jFrame, "Please mark a string in a frame.", "Attention", JOptionPane.WARNING_MESSAGE); + + /* + else + { + counter++; + } + + if (counter == frameList.size()) + { + JFrame jFrame = new JFrame("Information"); + JOptionPane.showMessageDialog(jFrame, "Please mark a string in a frame.", "Attention", JOptionPane.WARNING_MESSAGE); + } + */ } } - } - /* - Display.getCurrent().asyncExec(() -> { + /* + Display.getCurrent().asyncExec(() -> { + renewPage(); + }); + */ renewPage(); - }); - */ - renewPage(); + } } - public void correctSpeakerExp(AnnotationFS selected) + public void speakerOutsideFrame(AnnotationFS selected) { List speakerSelection = editor.getCurrentSelectionOfType(speakerType); List expSelection = editor.getCurrentSelectionOfType(expressionType); @@ -981,6 +1006,7 @@ public class RedeWiedergabeView extends AEditorSubordinateViewPart { updateAnnotation(anno, speakerIDFeat, selected.getFeatureValueAsString(frameIDFeat), true); } + if (expSelection != null && expSelection.size() > 0) { AnnotationFS anno = expSelection.get(0); @@ -988,9 +1014,21 @@ public class RedeWiedergabeView extends AEditorSubordinateViewPart { } } - // methods that are required by the view + public void speakerOutsideStwr(AnnotationFS selected) + { + List speakerSelection = editor.getCurrentSelectionOfType(speakerType); + + if (speakerSelection != null && speakerSelection.size() > 0) + { + AnnotationFS anno = speakerSelection.get(0); + updateAnnotation(anno, speakerIDFeat, selected.getFeatureValueAsString(stwrIDFeat), true); + } + } + + public void createExpression() { - int counter = 0; + int frameCounter = 0; + int repCounter = 0; AnnotationFS selected = null; if (editor.getSelectionOfVisibleAnnotations().size() > 0) { for (AnnotationFS anno : editor.getSelectionOfVisibleAnnotations()) { @@ -1001,7 +1039,6 @@ public class RedeWiedergabeView extends AEditorSubordinateViewPart { } } - // remove vorschlag CAS cas = editor.getCas(); Type t = expressionType; // get the selection @@ -1018,34 +1055,56 @@ public class RedeWiedergabeView extends AEditorSubordinateViewPart { expFeatValue = anno.getCoveredText(); updateAnnotation(anno, expressionFeat, expFeatValue, true); - for (AnnotationFS frame : frameList) - { - if (anno.getBegin() >= frame.getBegin() && anno.getEnd() <= frame.getEnd()) - { + for (AnnotationFS frame : frameList){ + if (anno.getBegin() >= frame.getBegin() && anno.getEnd() <= frame.getEnd()){ anno.getFeatureValueAsString(expressionFeat); updateAnnotation(anno, expressionIDFeat, frame.getFeatureValueAsString(frameIDFeat), true); addAnnotation(anno); - } + } else { - counter++; - } - - if (counter == frameList.size()) + frameCounter++; + } + /* + if (frameCounter == frameList.size()) { JFrame jFrame = new JFrame("Information"); - JOptionPane.showMessageDialog(jFrame, "Please mark a string in a frame.", "Attention", JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(jFrame, "Please mark a string in a frame or a reported STWR.", "Attention", JOptionPane.WARNING_MESSAGE); } + */ + } + + ArrayList repAnnoList = getReportedAnno(stwrList); + for (AnnotationFS repAnno : repAnnoList){ + if (anno.getBegin() >= repAnno.getBegin() && anno.getEnd() <= repAnno.getEnd()){ + anno.getFeatureValueAsString(expressionFeat); + updateAnnotation(anno, expressionIDFeat, repAnno.getFeatureValueAsString(stwrIDFeat), true); + addAnnotation(anno); + } + else + { + repCounter++; + } + } + if (repCounter == repAnnoList.size() && frameCounter == frameList.size()) + { + JFrame jFrame = new JFrame("Information"); + JOptionPane.showMessageDialog(jFrame, "Please mark a string in a frame or a reported STWR.", "Attention", JOptionPane.WARNING_MESSAGE); } } - /* - Display.getCurrent().asyncExec(() -> { - renewPage(); - }); - */ renewPage(); } + public ArrayList getReportedAnno(ListstwrList){ + ArrayList reportedList = new ArrayList(); + for (AnnotationFS stwr : stwrList){ + if (stwr.getFeatureValueAsString(rTypeFeat).equals("reported")){ + reportedList.add(stwr); + } + } + return reportedList; + } + public void createSpeech() { ambigMediumDialog.speechFlag = false; ambigMediumDialog.thoughtFlag = false; diff --git a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java index 39a2fb9..ccec695 100644 --- a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java +++ b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java @@ -201,7 +201,7 @@ public class RwFrameTableComposite extends Composite{ { IStructuredSelection sel = (IStructuredSelection) frameViewer.getSelection(); AnnotationFS selected = (AnnotationFS) sel.getFirstElement(); - part.correctSpeakerExp(selected); + part.speakerOutsideFrame(selected); } // small utility method diff --git a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java index dbea790..4b0a58b 100644 --- a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java +++ b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java @@ -203,6 +203,8 @@ public class RwStwrTableComposite extends Composite{ // table got a key listener stwrViewer.getTable().addListener(SWT.KeyDown, (Event e) -> handleTableKeyDown(e)); + stwrViewer.getTable().addListener(SWT.MouseDoubleClick, (Event e) -> handleTableDoubleClick(e)); + } private void handleTableKeyDown(Event e) { @@ -252,6 +254,13 @@ public class RwStwrTableComposite extends Composite{ part.toggleMetaph(selectedAnnos); } } + + private void handleTableDoubleClick (Event e) + { + IStructuredSelection sel = (IStructuredSelection) stwrViewer.getSelection(); + AnnotationFS selected = (AnnotationFS) sel.getFirstElement(); + part.speakerOutsideStwr(selected); + } // small utility method private List getSelectedAnnotationsFromTable() { -- GitLab From a116e8e2c98ef3e21ffa2afee1334a40c11bc909 Mon Sep 17 00:00:00 2001 From: tu Date: Mon, 8 Oct 2018 14:26:29 +0200 Subject: [PATCH 2/2] changed pos of ID; added warning message if an ID was assigned twice; changed pos of the ID column --- .../athen/rwview/part/RedeWiedergabeView.java | 52 +++++++++++++------ .../rwview/ui/RwFrameTableComposite.java | 2 +- .../rwview/ui/RwSpeakerDrawingStrategy.java | 4 +- .../athen/rwview/ui/RwStwrTableComposite.java | 14 ++--- 4 files changed, 48 insertions(+), 24 deletions(-) diff --git a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java index c874d15..71a8d5c 100644 --- a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java +++ b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/part/RedeWiedergabeView.java @@ -995,33 +995,55 @@ public class RedeWiedergabeView extends AEditorSubordinateViewPart { } - public void speakerOutsideFrame(AnnotationFS selected) + public void createSpeakerOutsideFrame(AnnotationFS selected) { List speakerSelection = editor.getCurrentSelectionOfType(speakerType); - List expSelection = editor.getCurrentSelectionOfType(expressionType); + String concatenatedId = ""; + + if (speakerSelection != null && speakerSelection.size() > 0) - { + { AnnotationFS anno = speakerSelection.get(0); - updateAnnotation(anno, speakerIDFeat, selected.getFeatureValueAsString(frameIDFeat), true); + if (anno.getFeatureValueAsString(speakerIDFeat) == null) + { + concatenatedId = selected.getFeatureValueAsString(frameIDFeat); + updateAnnotation(anno, speakerIDFeat, concatenatedId, true); + }else if (anno.getFeatureValueAsString(speakerIDFeat).matches(".*" + " " + selected.getFeatureValueAsString(frameIDFeat) + " " + ".*") + || anno.getFeatureValueAsString(speakerIDFeat).matches(selected.getFeatureValueAsString(frameIDFeat) + " " + ".*" ) + || anno.getFeatureValueAsString(speakerIDFeat).matches(".*" + " " + selected.getFeatureValueAsString(frameIDFeat)) + || anno.getFeatureValueAsString(speakerIDFeat).matches(selected.getFeatureValueAsString(frameIDFeat))){ + JFrame jFrame = new JFrame("Information"); + JOptionPane.showMessageDialog(jFrame, "The speaker already has the ID " + selected.getFeatureValueAsString(frameIDFeat) + ".", "Attention", JOptionPane.WARNING_MESSAGE); + }else { + concatenatedId = anno.getFeatureValueAsString(speakerIDFeat) + " " + selected.getFeatureValueAsString(frameIDFeat); + updateAnnotation(anno, speakerIDFeat, concatenatedId, true); + } } - - - if (expSelection != null && expSelection.size() > 0) - { - AnnotationFS anno = expSelection.get(0); - updateAnnotation(anno, expressionIDFeat, selected.getFeatureValueAsString(frameIDFeat), true); - } } - public void speakerOutsideStwr(AnnotationFS selected) + public void createSpeakerOutsideStwr(AnnotationFS selected) { List speakerSelection = editor.getCurrentSelectionOfType(speakerType); - + String concatenatedId = ""; + if (speakerSelection != null && speakerSelection.size() > 0) { AnnotationFS anno = speakerSelection.get(0); - updateAnnotation(anno, speakerIDFeat, selected.getFeatureValueAsString(stwrIDFeat), true); + if (anno.getFeatureValueAsString(speakerIDFeat) == null) + { + concatenatedId = selected.getFeatureValueAsString(stwrIDFeat); + updateAnnotation(anno, speakerIDFeat, concatenatedId, true); + }else if (anno.getFeatureValueAsString(speakerIDFeat).matches(".*" + " " + selected.getFeatureValueAsString(stwrIDFeat) + " " + ".*") + || anno.getFeatureValueAsString(speakerIDFeat).matches(selected.getFeatureValueAsString(stwrIDFeat) + " " + ".*" ) + || anno.getFeatureValueAsString(speakerIDFeat).matches(".*" + " " + selected.getFeatureValueAsString(stwrIDFeat)) + || anno.getFeatureValueAsString(speakerIDFeat).matches(selected.getFeatureValueAsString(stwrIDFeat))){ + JFrame jFrame = new JFrame("Information"); + JOptionPane.showMessageDialog(jFrame, "The speaker already has the ID " + selected.getFeatureValueAsString(stwrIDFeat) + ".", "Attention", JOptionPane.WARNING_MESSAGE); + }else { + concatenatedId = anno.getFeatureValueAsString(speakerIDFeat) + " " + selected.getFeatureValueAsString(stwrIDFeat); + updateAnnotation(anno, speakerIDFeat, concatenatedId, true); + } } } @@ -1089,7 +1111,7 @@ public class RedeWiedergabeView extends AEditorSubordinateViewPart { if (repCounter == repAnnoList.size() && frameCounter == frameList.size()) { JFrame jFrame = new JFrame("Information"); - JOptionPane.showMessageDialog(jFrame, "Please mark a string in a frame or a reported STWR.", "Attention", JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(jFrame, "Please mark a string in a frame or in a reported STWR.", "Attention", JOptionPane.WARNING_MESSAGE); } } renewPage(); diff --git a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java index ccec695..d9e2793 100644 --- a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java +++ b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwFrameTableComposite.java @@ -201,7 +201,7 @@ public class RwFrameTableComposite extends Composite{ { IStructuredSelection sel = (IStructuredSelection) frameViewer.getSelection(); AnnotationFS selected = (AnnotationFS) sel.getFirstElement(); - part.speakerOutsideFrame(selected); + part.createSpeakerOutsideFrame(selected); } // small utility method diff --git a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwSpeakerDrawingStrategy.java b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwSpeakerDrawingStrategy.java index 21df66a..d5d959b 100644 --- a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwSpeakerDrawingStrategy.java +++ b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwSpeakerDrawingStrategy.java @@ -80,7 +80,9 @@ public class RwSpeakerDrawingStrategy implements IAnnotationDrawingStrategy { String feat = anno.getFeatureValueAsString(f); if (feat != null && feat.trim().length() > 0) { // Only draw if String not empty. - gc.drawString(anno.getFeatureValueAsString(f) + s, lastRect.x + lastRect.width - 1, + //gc.drawString(anno.getFeatureValueAsString(f) + s, lastRect.x + lastRect.width - 1, + // lastRect.y - FONTSIZE - 7); + gc.drawString(anno.getFeatureValueAsString(f) + s, lastRect.x-10 + lastRect.width - 1, lastRect.y - FONTSIZE - 7); } } diff --git a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java index 4b0a58b..cf49df0 100644 --- a/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java +++ b/de.uniwue.mk.athen/bundles/de.ids.tt.athen.rwview/src/de/ids/tt/athen/rwview/ui/RwStwrTableComposite.java @@ -109,12 +109,12 @@ public class RwStwrTableComposite extends Composite{ createTableViewerColumn("Stwr", 45, 1, part::determineStwr); createTableViewerColumn("Medium", 45, 2, part::determineMedium); createTableViewerColumn("Type", 45, 3, part::determineRType); - createTableViewerColumn("Level", 45, 4, part::determineLevel); - createTableViewerColumn("NonFact", 45, 5, part::determineNonFact); - createTableViewerColumn("Prag", 45, 6, part::determinePrag); - createTableViewerColumn("Border", 45, 7, part::determineBorder); - createTableViewerColumn("Metaph", 45, 8, part::determineMetaph); - createTableViewerColumn("ID", 45, 9, part::determineStwrID); + createTableViewerColumn("ID", 45, 4, part::determineStwrID); + createTableViewerColumn("Level", 45, 5, part::determineLevel); + createTableViewerColumn("NonFact", 45, 6, part::determineNonFact); + createTableViewerColumn("Prag", 45, 7, part::determinePrag); + createTableViewerColumn("Border", 45, 8, part::determineBorder); + createTableViewerColumn("Metaph", 45, 9, part::determineMetaph); createTableViewerColumn("Note", 45, 10, part::determineStwrNote); } @@ -259,7 +259,7 @@ public class RwStwrTableComposite extends Composite{ { IStructuredSelection sel = (IStructuredSelection) stwrViewer.getSelection(); AnnotationFS selected = (AnnotationFS) sel.getFirstElement(); - part.speakerOutsideStwr(selected); + part.createSpeakerOutsideStwr(selected); } // small utility method -- GitLab