Changeset 32


Ignore:
Timestamp:
05/14/08 09:43:27 (16 years ago)
Author:
ra33
Message:
 
File:
1 edited

Legend:

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

    r22 r32  
    198198        }
    199199
    200         private static void AddAllOverlayItems(List<Item> items, Frame overlay,
     200        public static void AddAllOverlayItems(List<Item> items, Frame overlay,
    201201                        List<Frame> seenOverlays) {
    202202                if (seenOverlays.contains(overlay))
     
    209209
    210210                items.addAll(overlay.getItems());
     211        }
     212
     213        /**
     214         * Recursive function similar to AddAllOverlayItems.
     215         *
     216         * @param widgets
     217         *            The collection the widgets will be added to
     218         * @param overlay
     219         *            An "overlay" frame - this intially will be the parent frame
     220         * @param seenOverlays
     221         *            Used for state in the recursion stack. Pass as an empty
     222         *            (non-null) list.
     223         */
     224        public static void AddAllOverlayWidgets(List<InteractiveWidget> widgets,
     225                        Frame overlay, List<Frame> seenOverlays) {
     226                if (seenOverlays.contains(overlay))
     227                        return;
     228
     229                seenOverlays.add(overlay);
     230
     231                for (Overlay o : overlay.getOverlays())
     232                        AddAllOverlayWidgets(widgets, o.Frame, seenOverlays);
     233
     234                widgets.addAll(overlay.getInteractiveWidgets());
    211235        }
    212236
     
    244268
    245269                        List<Item> paintItems = new LinkedList<Item>();
    246                         List<Frame> seenOverlays = new LinkedList<Frame>();
    247                         if (paintOverlay)
    248                                 AddAllOverlayItems(paintItems, toPaint, seenOverlays);
    249                         else {
     270                        List<InteractiveWidget> paintWidgets;
     271
     272                        if (paintOverlay) {
     273
     274                                AddAllOverlayItems(paintItems, toPaint, new LinkedList<Frame>());
     275
     276                                paintWidgets = new LinkedList<InteractiveWidget>();
     277                                AddAllOverlayWidgets(paintWidgets, toPaint,
     278                                                new LinkedList<Frame>());
     279
     280                        } else {
    250281                                paintItems.addAll(toPaint.getItems());
    251                         }
     282                                paintWidgets = toPaint.getInteractiveWidgets();
     283                        }
     284
    252285                        // FIRST: Paint widgets swing gui (not expeditee gui) .
    253286                        // Note that these are the ancored widgets
    254                         for (InteractiveWidget iw : toPaint.getInteractiveWidgets()) {
     287                        for (InteractiveWidget iw : paintWidgets) {
    255288                                iw.paint(bg);
    256289                        }
     
    535568                Repaint();
    536569        }
     570       
     571        public static void ChangeSelectionMode(Item item, Item.SelectedMode newMode) {
     572                if (item == null)
     573                        return;
     574               
     575                for(Item i: item.getAllConnected())
     576                        i.setSelectedMode(newMode);
     577                Repaint();
     578        }
    537579
    538580        public static void OverwriteMessage(String message) {
Note: See TracChangeset for help on using the changeset viewer.