uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Zhu (JIRA)" <...@uima.apache.org>
Subject [jira] [Comment Edited] (UIMA-3374) A new mode for annotation viewer based on feature values
Date Mon, 18 May 2015 20:01:00 GMT

    [ https://issues.apache.org/jira/browse/UIMA-3374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14546633#comment-14546633
] 

James Zhu edited comment on UIMA-3374 at 5/18/15 8:00 PM:
----------------------------------------------------------

This is the final major patch that contains my enhancement of the annotation viewer with a
"feature" view mode. This patch should be applied to the uimaj-tools project only.

In this patch, I included the following:
1. Reverted an earlier practice of instantiating private collection variables only when needed.
Instead, they are instantiated during declaration. This will save us from doing null checks
repeatedly afterwards.
2. Replaced annotation check box panel and entity check box panel with a tabbed pane. In annotation
view, only the first tab is used to hold check boxes representing annotation types. In entity
view, only the first tab is used to hold check boxes representing entities. In feature view,
the first tab is used to hold radio buttons representing annotation types. The second tab
is used to hold radio buttons representing features of selected annotation type from the first
tab. The third tab is used to hold check boxes representing feature values of selected feature
in the second tab of selected annotation type in the first tab.
3. resetTabbedPane() to reset these tabs and each tab's contents based on the current view
mode and user selections.
4. Improvement to createShowHideUnselectedButton() for the behavior of the "show hidden unselected"
button. In each view mode, we go through the check box panel to see if there are unselected
check boxes that would cause the UI to refresh. If there are no such unselected check boxes,
then we don't need to refresh the UI.
5. Improvements to behavior of "select all" and "unselect all" buttons. Similar to above,
we going through all check boxes to see if "select all" will cause any unchecked check boxes
to be selected or if "unselect all" will cause any checked check boxes to be unselected, before
we actually refresh the UI. If there are no such changes to the check boxes, then we don't
need to refresh the UI.
6. Added a key listener to the text pane to support CTRL-C for copy selected text into clipboard.
7. Added a key listener to the tree model to support CTRL-C for copy selected tree node text
into clipboard.
8. Implemented display method to handle the feature view. It will populate the first tab of
the tabbed pane by going through every annotation objects, and add a unique radio button to
represent each annotation type. For the selected annotation type, it will populate the second
tab with radio buttons to represent features of the selected annotation type. For the third
tab, it will add all encountered feature values of the selected feature from the second tab,
each feature value being represented by a check box in the third tab. Whenever user selection
changes, the three tabs will be reset and re-populated based on the user selection.
9. Augmented the isMatch() method so when in features mode and user click on the text panel,
it will find all the annotations that fall under the mouse click. Then it will check against
the first tab for user selected annotation type, second tab for user selected feature, and
third tab for user selected feature values. If all matched, then such annotations are considered
as matching user's selection and will be render in the tree model.

If you have any trouble following the code or have any questions, please let me know.

Thanks.


was (Author: jichun):
This is the final major patch that contains my enhancement of the annotation viewer with a
"feature" view mode. This patch should be applied to the uimaj-tools project only.

In this patch, I included the following:
1. Reverted an earlier practice of instantiating private collection variables only when needed.
Instead, they are instantiated during declaration. This will save us from doing null checks
repeatedly afterwards.
2. Replaced annotation check box panel and entity check box panel with a tabbed pane. In annotation
view, only the first tab is used to hold check boxes representing annotation types. In entity
view, only the first tab is used to hold check boxes representing entities. In feature view,
the first tab is used to hold radio buttons representing annotation types. The second tab
is used to hold radio buttons representing features of selected annotation type from the first
tab. The third tab is used to hold check boxes representing feature values of selected feature
in the second tab of selected annotation type in the first tab.
3. resetTabbedPane() to reset these tabs and each tab's contents based on the current view
mode and user selections.
4. Improvement to createShowHideUnselectedButton() for the behavior of the "show hidden unselected"
button. In each view mode, we go through the check box panel to see if there are unselected
check boxes that would cause the UI to refresh. If there are no such unselected check boxes,
then we don't need to refresh the UI.
5. Improvements to behavior of "select all" and "unselect all" buttons. Similar to above,
we going through all check boxes to see if "select all" will cause any unchecked check boxes
to be selected or if "unselect all" will cause any checked check boxes to be unselected, before
we actually refresh the UI. If there are no such changes to the check boxes, then we don't
need to refresh the UI.
6. Added a key listener to the text pane to support CTRL-C for copy selected text into clipboard.
7. Added a key listener to the tree model to support CTRL-C for copy selected tree node text
into clipboard.
8. Implemented display method to handle the feature view. It will populate the first tab of
the tabbed pane by going through every annotation objects, and add a unique radio button to
represent each annotation type. For the selected annotation type, it will populate the second
tab with radio buttons to represent features of the selected annotation type. For the third
tab, it will add all encountered feature values of the selected feature from the second tab,
each feature value being represented by a check box in the third tab. Whenever user selection
changes, the three tabs will be reset and re-populated based on the user selection.
9. Augmented the isMatch() method so when in features mode and user click on the text panel,
it will find all the annotations that fall under the mouse click. Then it will check against
the first tab for user selected annotation type, second tab for user selected feature, and
third tab for user selected feature values. If all matched, then such annotations are considered
as match user's selection and will be render in the tree mode.

If you have any trouble following the code or have any questions, please let me know.

Thanks.

> A new mode for annotation viewer based on feature values
> --------------------------------------------------------
>
>                 Key: UIMA-3374
>                 URL: https://issues.apache.org/jira/browse/UIMA-3374
>             Project: UIMA
>          Issue Type: Improvement
>          Components: InternalTools
>    Affects Versions: 2.5.0SDK
>            Reporter: James Zhu
>            Assignee: Marshall Schor
>            Priority: Minor
>              Labels: annotation, feature, filter, type, value, viewer
>         Attachments: UIMA-3374 patch 2015-04-21.txt, UIMA-3374 patch 2015-04-23.txt,
UIMA-3374 patch 2015-04-28.txt, UIMA-3374 patch 2015-05-08.txt, UIMA-3374 patch 2015-05-15.txt,
screenshot-1.jpg, screenshot-2.jpg, screenshot-3.jpg, screenshot-4.jpg
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> I'd like to propose adding a new "view mode" in the UIMA Annotation Viewer so that user
can pick a specific type of annotations, and then pick a specific feature, and pick specific
feature values available so user can see a subset of those annotation objects that have the
specific feature values.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message