public void update() { if (visible.get() == false) { return; } final T total; final T filtered; final T selected; final boolean smart = CFG_GUI.OVERVIEW_PANEL_SMART_INFO_VISIBLE.isEnabled(); final boolean visibleOnly = CFG_GUI.OVERVIEW_PANEL_VISIBLE_ONLY_INFO_VISIBLE.isEnabled(); final boolean selectedOnly = CFG_GUI.OVERVIEW_PANEL_SELECTED_INFO_VISIBLE.isEnabled(); final boolean totalVisible = CFG_GUI.OVERVIEW_PANEL_TOTAL_INFO_VISIBLE.isEnabled(); final boolean containsSelection = hasSelection.get(); if (smart || (!visibleOnly && !totalVisible && !selectedOnly)) { if (containsSelection) { filtered = null; total = null; selected = createSelected(); } else { filtered = createFiltered(); total = null; selected = null; } } else { if (totalVisible) { total = createTotal(); } else { total = null; } if (visibleOnly) { filtered = createFiltered(); } else { filtered = null; } if (selectedOnly) { selected = createSelected(); } else { selected = null; } } new EDTRunner() { @Override protected void runInEDT() { if (!isDisplayable() || visible.get() == false) { return; } for (DataEntry<T> entry : dataEntries) { entry.updateVisibility(containsSelection); set(entry); } } private void set(DataEntry<T> dataEntry) { if (dataEntry != null) { dataEntry.setData(total, filtered, selected); } } }.waitForEDT(); }
public AbstractOverviewPanel(PackageControllerTableModel tableModel) { super("ins 0", "[][grow,fill][]", "[grow,fill]"); this.tableModel = tableModel; LAFOptions.getInstance().applyPanelBackground(this); GUIEventSender.getInstance().addListener(this, true); final MigPanel info = new MigPanel("ins 2 0 0 0", "[grow]10[grow]", "[grow,fill]2[grow,fill]"); info.setOpaque(false); relayoutListener = new GenericConfigEventListener<Boolean>() { @Override public void onConfigValueModified(KeyHandler<Boolean> keyHandler, Boolean newValue) { new EDTRunner() { @Override protected void runInEDT() { layoutInfoPanel(info); update(); revalidate(); } }; } @Override public void onConfigValidatorError( KeyHandler<Boolean> keyHandler, Boolean invalidValue, ValidationException validateException) {} }; layoutInfoPanel(info); add(info, "pushy,growy"); slowDelayer = new DelayedRunnable(SERVICE, 500, 5000) { @Override public void delayedrun() { update(); } }; fastDelayer = new DelayedRunnable(SERVICE, 50, 200) { @Override public void delayedrun() { update(); } }; CFG_GUI.OVERVIEW_PANEL_TOTAL_INFO_VISIBLE.getEventSender().addListener(this, true); CFG_GUI.OVERVIEW_PANEL_SELECTED_INFO_VISIBLE.getEventSender().addListener(this, true); CFG_GUI.OVERVIEW_PANEL_VISIBLE_ONLY_INFO_VISIBLE.getEventSender().addListener(this, true); CFG_GUI.OVERVIEW_PANEL_SMART_INFO_VISIBLE.getEventSender().addListener(this, true); this.addHierarchyListener(this); onConfigValueModified(null, null); SecondLevelLaunch.GUI_COMPLETE.executeWhenReached( new Runnable() { public void run() { visible.set(isViewActive()); fastDelayer.run(); } }); onConfigValueModified(null, null); }