Search in sources :

Example 1 with JRangeSliderPanel

use of org.gephi.ui.components.JRangeSliderPanel in project gephi by gephi.

the class RangePanel method setup.

public void setup(final RangeFilter rangeFilter) {
    this.filter = rangeFilter;
    final Range range = (Range) rangeFilter.getRangeProperty().getValue();
    if (range == null) {
    // Do nothing
    } else {
        new Thread(new Runnable() {

            @Override
            public void run() {
                final JRangeSliderPanel rangeSlider = (JRangeSliderPanel) rangeSliderPanel;
                values = range.getValues();
                rangeSlider.addPropertyChangeListener(new PropertyChangeListener() {

                    @Override
                    public void propertyChange(PropertyChangeEvent evt) {
                        try {
                            if (evt.getPropertyName().equals(JRangeSliderPanel.LOWER_BOUND)) {
                                Range oldRange = (Range) filter.getRangeProperty().getValue();
                                final Range newRange = new Range((Number) rangeSlider.getRange().getLowerBound(), (Number) rangeSlider.getRange().getUpperBound(), oldRange.getMinimum(), oldRange.getMaximum(), oldRange.getValues());
                                if (!oldRange.equals(newRange)) {
                                    filter.getRangeProperty().setValue(newRange);
                                    new Thread(new Runnable() {

                                        @Override
                                        public void run() {
                                            setupHistogram(filter, newRange);
                                        }
                                    }).start();
                                }
                            } else if (evt.getPropertyName().equals(JRangeSliderPanel.UPPER_BOUND)) {
                                final Range oldRange = (Range) filter.getRangeProperty().getValue();
                                final Range newRange = new Range((Number) rangeSlider.getRange().getLowerBound(), (Number) rangeSlider.getRange().getUpperBound(), oldRange.getMinimum(), oldRange.getMaximum(), oldRange.getValues());
                                if (!oldRange.equals(newRange)) {
                                    filter.getRangeProperty().setValue(newRange);
                                    new Thread(new Runnable() {

                                        @Override
                                        public void run() {
                                            setupHistogram(filter, newRange);
                                        }
                                    }).start();
                                }
                            }
                        } catch (Exception e) {
                            Logger.getLogger("").log(Level.SEVERE, "Error with range slider", e);
                        }
                    }
                });
                SwingUtilities.invokeLater(new Runnable() {

                    @Override
                    public void run() {
                        rangeSlider.setRange(JRangeSliderPanel.Range.build(rangeSlider, range.getMinimum(), range.getMaximum(), range.getLowerBound(), range.getUpperBound()));
                    }
                });
                setupHistogram(rangeFilter, range);
            }
        }).start();
    }
// Tooltip
/*
         * histogram.getPanel().addMouseListener(new MouseAdapter() {
         *
         * RichTooltip richTooltip;
         *
         * @Override public void mouseEntered(MouseEvent e) { new Thread(new
         * Runnable() {
         *
         * public void run() { richTooltip = buildTooltip();
         *
         * SwingUtilities.invokeLater(new Runnable() {
         *
         * public void run() { if (richTooltip != null) {
         * richTooltip.showTooltip(histogram.getPanel()); } } }); } }).start();
         * }
         *
         * @Override public void mouseExited(MouseEvent e) { if (richTooltip !=
         * null) { richTooltip.hideTooltip(); richTooltip = null; } } });
         */
}
Also used : PropertyChangeEvent(java.beans.PropertyChangeEvent) PropertyChangeListener(java.beans.PropertyChangeListener) Range(org.gephi.filters.api.Range) JRangeSliderPanel(org.gephi.ui.components.JRangeSliderPanel)

Example 2 with JRangeSliderPanel

use of org.gephi.ui.components.JRangeSliderPanel in project gephi by gephi.

the class RangePanel method initComponents.

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
private // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
void initComponents() {
    rangeSliderPanel = new JRangeSliderPanel();
    histogramPanel = new javax.swing.JPanel();
    setOpaque(false);
    setLayout(new java.awt.BorderLayout());
    rangeSliderPanel.setOpaque(false);
    add(rangeSliderPanel, java.awt.BorderLayout.CENTER);
    histogramPanel.setOpaque(false);
    histogramPanel.setLayout(new java.awt.BorderLayout());
    add(histogramPanel, java.awt.BorderLayout.SOUTH);
}
Also used : JRangeSliderPanel(org.gephi.ui.components.JRangeSliderPanel)

Aggregations

JRangeSliderPanel (org.gephi.ui.components.JRangeSliderPanel)2 PropertyChangeEvent (java.beans.PropertyChangeEvent)1 PropertyChangeListener (java.beans.PropertyChangeListener)1 Range (org.gephi.filters.api.Range)1