コード例 #1
0
  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();
  }
コード例 #2
0
  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);
  }