Search in sources :

Example 1 with Timer

use of com.biglybt.core.util.Timer in project BiglyBT by BiglySoftware.

the class ConfigView method filterTree.

/**
 * @param text
 */
protected void filterTree(String text) {
    filterText = text;
    if (filterDelayTimer != null) {
        filterDelayTimer.destroy();
    }
    if (lblX != null && !lblX.isDisposed()) {
        Image img = filterText.length() > 0 ? imgSmallX : imgSmallXGray;
        lblX.setImage(img);
    }
    filterDelayTimer = new Timer("Filter");
    filterDelayTimer.addEvent(SystemTime.getCurrentTime() + 300, new TimerEventPerformer() {

        @Override
        public void perform(TimerEvent event) {
            filterDelayTimer.destroy();
            filterDelayTimer = null;
            Utils.execSWTThread(new AERunnable() {

                @Override
                public void runSupport() {
                    if (filterDelayTimer != null) {
                        return;
                    }
                    if (tree.isDisposed()) {
                        return;
                    }
                    Shell shell = tree.getShell();
                    if (shell != null) {
                        shell.setCursor(shell.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
                    }
                    try {
                        ArrayList<TreeItem> foundItems = new ArrayList<>();
                        TreeItem[] items = tree.getItems();
                        try {
                            tree.setRedraw(false);
                            for (int i = 0; i < items.length; i++) {
                                items[i].setExpanded(false);
                            }
                            filterTree(items, filterText, foundItems);
                        } finally {
                            tree.setRedraw(true);
                        }
                    } finally {
                        if (shell != null) {
                            shell.setCursor(null);
                        }
                        TreeItem[] selection = tree.getSelection();
                        if (selection != null && selection.length > 0) {
                            showSection(selection[0], false);
                        }
                    }
                }
            });
        }
    });
}
Also used : Timer(com.biglybt.core.util.Timer)

Example 2 with Timer

use of com.biglybt.core.util.Timer in project BiglyBT by BiglySoftware.

the class CoreStats method setEnableAverages.

public static synchronized void setEnableAverages(boolean enabled) {
    if (enabled == enable_averages) {
        return;
    }
    enable_averages = enabled;
    if (enabled) {
        if (average_timer == null) {
            average_timer = new Timer("CoreStats:average");
            averages = new HashMap();
            average_timer.addPeriodicEvent(AVERAGE_PERIOD, new TimerEventPerformer() {

                private final Map ave = averages;

                @Override
                public void perform(TimerEvent event) {
                    Map stats = getStatsSupport(null);
                    Iterator it = stats.entrySet().iterator();
                    boolean new_averages = false;
                    while (it.hasNext()) {
                        Map.Entry entry = (Map.Entry) it.next();
                        String key = (String) entry.getKey();
                        Object value = entry.getValue();
                        if (value instanceof Long) {
                            long last_value;
                            Average a;
                            boolean new_average;
                            Object[] a_entry = (Object[]) ave.get(key);
                            if (a_entry == null) {
                                a = AverageFactory.MovingImmediateAverage(10);
                                last_value = 0;
                                a_entry = new Object[] { a, value };
                                ave.put(key, a_entry);
                                new_averages = new_average = true;
                            } else {
                                a = (Average) a_entry[0];
                                last_value = ((Long) a_entry[1]).longValue();
                                new_average = false;
                            }
                            if (stats_types.get(key) == CUMULATIVE) {
                                if (!new_average) {
                                    a.update(((Long) value).longValue() - last_value);
                                }
                            } else {
                                a.update(((Long) value).longValue());
                            }
                            a_entry[1] = value;
                        }
                    }
                    if (new_averages) {
                        fireProvidersChangeListeners();
                    }
                }
            });
        }
    } else {
        if (average_timer != null) {
            average_timer.destroy();
            average_timer = null;
            averages = null;
        }
    }
}
Also used : Timer(com.biglybt.core.util.Timer) Average(com.biglybt.core.util.average.Average)

Aggregations

Timer (com.biglybt.core.util.Timer)2 Average (com.biglybt.core.util.average.Average)1