/** * Standard constructor: builds a property panel for the specified axis. * * @param axis the axis, which should be changed. */ public DefaultValueAxisEditor(ValueAxis axis) { super(axis); this.autoRange = axis.isAutoRange(); this.minimumValue = axis.getLowerBound(); this.maximumValue = axis.getUpperBound(); this.autoTickUnitSelection = axis.isAutoTickUnitSelection(); this.gridPaintSample = new PaintSample(Color.blue); this.gridStrokeSample = new StrokeSample(new BasicStroke(1.0f)); this.availableStrokeSamples = new StrokeSample[3]; this.availableStrokeSamples[0] = new StrokeSample(new BasicStroke(1.0f)); this.availableStrokeSamples[1] = new StrokeSample(new BasicStroke(2.0f)); this.availableStrokeSamples[2] = new StrokeSample(new BasicStroke(3.0f)); JTabbedPane other = getOtherTabs(); JPanel range = new JPanel(new LCBLayout(3)); range.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); range.add(new JPanel()); this.autoRangeCheckBox = new JCheckBox(localizationResources.getString("Auto-adjust_range"), this.autoRange); this.autoRangeCheckBox.setActionCommand("AutoRangeOnOff"); this.autoRangeCheckBox.addActionListener(this); range.add(this.autoRangeCheckBox); range.add(new JPanel()); range.add(new JLabel(localizationResources.getString("Minimum_range_value"))); this.minimumRangeValue = new JTextField(Double.toString(this.minimumValue)); this.minimumRangeValue.setEnabled(!this.autoRange); this.minimumRangeValue.setActionCommand("MinimumRange"); this.minimumRangeValue.addActionListener(this); this.minimumRangeValue.addFocusListener(this); range.add(this.minimumRangeValue); range.add(new JPanel()); range.add(new JLabel(localizationResources.getString("Maximum_range_value"))); this.maximumRangeValue = new JTextField(Double.toString(this.maximumValue)); this.maximumRangeValue.setEnabled(!this.autoRange); this.maximumRangeValue.setActionCommand("MaximumRange"); this.maximumRangeValue.addActionListener(this); this.maximumRangeValue.addFocusListener(this); range.add(this.maximumRangeValue); range.add(new JPanel()); other.add(localizationResources.getString("Range"), range); other.add(localizationResources.getString("TickUnit"), createTickUnitPanel()); }
public void axisUpdate() { ValueAxis va = getValueAxis(); if (va.isAutoRange()) { if (oldColor == null) oldColor = getBackground(); setBackground(oldColor.brighter()); } else if (oldColor != null) { setBackground(oldColor); oldColor = null; } if (updating) return; updating = true; displayMin = 0; displayMax = 0; viewLength = 0; double viewMin = 0; double viewMax = 0; ratio = 1; Range dataRange = getDataRange(); if (dataRange != null) { displayMin = getDisplayMinimum(); displayMax = getDisplayMaximum(); viewMin = getViewMinimum(); viewMax = getViewMaximum(); // ValueAxis va = getValueAxis(); if (va instanceof DateAxis) { Timeline tl = ((DateAxis) va).getTimeline(); displayMin = tl.toTimelineValue((long) displayMin); displayMax = tl.toTimelineValue((long) displayMax); viewMin = tl.toTimelineValue((long) viewMin); viewMax = tl.toTimelineValue((long) viewMax); } viewLength = viewMax - viewMin; ratio = STEPS / (displayMax - displayMin); } int newMin = 0; int newMax = STEPS; int newExtent = (int) (viewLength * ratio); int newValue; if (orientation == VERTICAL) newValue = (int) ((displayMax - viewMax) * ratio); else newValue = (int) ((viewMin - displayMin) * ratio); // System.out.println("ChartScrollBar.axisUpdate(): newValue: " + newValue + " newExtent: " + // newExtent + " newMin: " + newMin + " newMax: " + newMax); setValues(newValue, newExtent, newMin, newMax); updating = false; }