Ignore:
Timestamp:
12/11/13 11:13:21 (11 years ago)
Author:
jts21
Message:

Invert the behaviour of shift-delete (now the default is to delete a single item, and shift-delete deletes all the connected items too). Also update highlighting so connected items are highlighted in accordance with the deletion behaviour. Does not currently highlight items that are being carried (adding that would be as simple as disabling a few statements that explicitly disable highlighting on carried items, but it would look kind of ugly)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/gui/FrameGraphics.java

    r570 r602  
    2222
    2323import org.expeditee.items.Circle;
     24import org.expeditee.items.Dot;
    2425import org.expeditee.items.Item;
    2526import org.expeditee.items.ItemUtils;
     
    2728import org.expeditee.items.UserAppliedPermission;
    2829import org.expeditee.items.XRayable;
     30import org.expeditee.items.Item.HighlightMode;
    2931import org.expeditee.items.widgets.InteractiveWidget;
    3032import org.expeditee.items.widgets.WidgetEdge;
     
    740742                                i = toDisconnect;
    741743                        } else {
    742                                 Collection<Item> connected = i.getAllConnected();
    743                                 for (Item conn : connected) {
    744                                         conn.setHighlightMode(Item.HighlightMode.Connected);
    745                                 }
     744                                if(FrameMouseActions.isShiftDown()) {
     745                                for(Item j : i.getAllConnected()) {
     746                                        if(j instanceof Dot && !j.equals(i)) {
     747                                                j.setHighlightMode(HighlightMode.Connected);
     748                                        }
     749                                }
     750                        } else {
     751                                for(Item j : i.getAllConnected()) {
     752                                        if(j instanceof Dot && !j.equals(i)) {
     753                                                j.setHighlightMode(HighlightMode.None);
     754                                        }
     755                                }
     756                                l.getStartItem().setHighlightMode(HighlightMode.Connected);
     757                                l.getEndItem().setHighlightMode(HighlightMode.Connected);
     758                        }
     759//                              Collection<Item> connected = i.getAllConnected();
     760//                              for (Item conn : connected) {
     761//                                      conn.setHighlightMode(Item.HighlightMode.Connected);
     762//                              }
    746763                        }
    747764                } else if (i instanceof Circle) {
     
    749766                } else if (!i.isVisible()) {
    750767                        changeHighlightMode(i, Item.HighlightMode.Connected, null);
    751                 } else {
     768                } else if (i instanceof Dot) {
     769                        // highlight the dot
     770                        if (i.hasPermission(UserAppliedPermission.full)) {
     771                                changeHighlightMode(i, Item.HighlightMode.Normal, Item.HighlightMode.None);
     772                        } else {
     773                                changeHighlightMode(i, Item.HighlightMode.Connected, Item.HighlightMode.Connected);
     774                        }
     775                        // highlight connected dots, but only if there aren't items being carried on the cursor
     776                        if(FreeItems.getInstance().size() == 0) {
     777                        if(FrameMouseActions.isShiftDown()) {
     778                                for(Item j : i.getAllConnected()) {
     779                                        if(j instanceof Dot && !j.equals(i)) {
     780                                                j.setHighlightMode(HighlightMode.Connected);
     781                                        }
     782                                }
     783                        } else {
     784                                for(Item j : i.getAllConnected()) {
     785                                        if(j instanceof Dot && !j.equals(i)) {
     786                                                j.setHighlightMode(HighlightMode.None);
     787                                        }
     788                                }
     789                                for(Line l : i.getLines()) {
     790                                        Item j = l.getOppositeEnd(i);
     791                                        j.setHighlightMode(HighlightMode.Connected);
     792                                }
     793                        }
     794                        }
     795        } else {
    752796                        // FrameGraphics.ChangeSelectionMode(i,
    753797                        // Item.SelectedMode.Normal);
Note: See TracChangeset for help on using the changeset viewer.