Skip to content

Commit

Permalink
MappingPanel: try to select highlighted arrows before normal
Browse files Browse the repository at this point in the history
GIve preference to highlighted arrows when testing if a mouse click
was contained within an arrow.
  • Loading branch information
aguynamedryan committed May 22, 2015
1 parent af52dcb commit 0a7e0c8
Showing 1 changed file with 37 additions and 17 deletions.
54 changes: 37 additions & 17 deletions src/org/ohdsi/rabbitInAHat/MappingPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,11 @@ private void addLabel(Graphics2D g2d, String string, int x, int y) {

@Override
public void mouseClicked(MouseEvent event) {
// Save away which arrows are currently highlighted vs normal before we
// de-select all the tables and arrows
List<Arrow> currentlyHighlightedArrows = highlightedArrows();
List<Arrow> currentlyNormalArrows = normalArrows();

if (selectedArrow != null) {
selectedArrow.setSelected(false);
detailsListener.showDetails(null);
Expand Down Expand Up @@ -300,27 +305,42 @@ public void mouseClicked(MouseEvent event) {
}
}
if (event.getX() > sourceX + ITEM_WIDTH && event.getX() < cdmX) { // Arrows
for (Arrow component : arrows) {
if (component.contains(event.getPoint())) {
if (event.getClickCount() == 2) { // double click
zoomArrow = component;
if (slaveMappingPanel != null) {
slaveMappingPanel.setMapping(ObjectExchange.etl.getFieldToFieldMapping((Table) zoomArrow.getSource().getItem(), (Table) zoomArrow
.getTarget().getItem()));
new AnimateThread(true).start();
}

} else { // single click
if (!component.isSelected()) {
component.setSelected(true);
selectedArrow = component;
detailsListener.showDetails(mapping.getSourceToCdmMap(selectedArrow.getSource().getItem(), selectedArrow.getTarget().getItem()));
}
repaint();
Arrow clickedArrow = null;

for (Arrow arrow : currentlyHighlightedArrows) {
if (arrow.contains(event.getPoint())) {
clickedArrow = arrow;
break;
}
}

if (clickedArrow == null) {
for (Arrow arrow : currentlyNormalArrows) {
if (arrow.contains(event.getPoint())) {
clickedArrow = arrow;
break;
}
}
}

if (clickedArrow != null) {
if (event.getClickCount() == 2) { // double click
zoomArrow = clickedArrow;
if (slaveMappingPanel != null) {
slaveMappingPanel.setMapping(ObjectExchange.etl.getFieldToFieldMapping((Table) zoomArrow.getSource().getItem(), (Table) zoomArrow
.getTarget().getItem()));
new AnimateThread(true).start();
}

} else { // single click
if (!clickedArrow.isSelected()) {
clickedArrow.setSelected(true);
selectedArrow = clickedArrow;
detailsListener.showDetails(mapping.getSourceToCdmMap(selectedArrow.getSource().getItem(), selectedArrow.getTarget().getItem()));
}
repaint();
}
}
}

}
Expand Down

0 comments on commit 0a7e0c8

Please sign in to comment.