private void setLandscape( final List<Pair<String, Float>> landscape, final boolean scaleToFit, final Comparator<Pair<String, Float>> rawTextComparator) { this.rawTextComparator = rawTextComparator; useMinMax = scaleToFit; setLandscapeCommon(landscape); if (scaleToFit && (landscapeMin != null) && (landscapeMax != null)) { pnlLineChart.setViewport( new Rectangle2D.Float(0, landscapeMin, 1, landscapeMax - landscapeMin)); } pnlLineChart.setLandscape(landscape, true); }
private void setLandscapeCommon(final List<Pair<String, Float>> landscape) { this.landscape = landscape; if (!stkLineChartZoom.empty()) { pnlLineChart.setViewport(stkLineChartZoom.get(0)); stkLineChartZoom.clear(); } if (landscape == null) { landscapeMin = landscapeMax = null; } else { float min = Float.POSITIVE_INFINITY; float max = Float.NEGATIVE_INFINITY; for (final Pair<String, Float> p : landscape) { final float fitness = p.getSecond(); if (Float.isInfinite(fitness)) { continue; } if (fitness < min) { min = fitness; } if (fitness > max) { max = fitness; } } landscapeMin = new Float(min - max * 0.05); landscapeMax = new Float(max * 1.05); } if (!stkHistogramZoom.empty()) { pnlHistogram.setViewport(stkHistogramZoom.get(0)); stkHistogramZoom.clear(); } if (useMinMax && (landscapeMin != null) && (landscapeMax != null)) { pnlHistogram.setBins( binLandscape(((Number) spnBins.getValue()).intValue()), landscapeMin.floatValue(), landscapeMax.floatValue()); } else { pnlHistogram.setBins(binLandscape(((Number) spnBins.getValue()).intValue())); } // cboDisplayType.setSelectedIndex(0); if (landscape == null) { txaRaw.setText(""); } else { final StringBuffer b = new StringBuffer(); if (rawTextComparator != null) { Collections.sort(landscape, rawTextComparator); } b.append(getXAxisLabel()); b.append('\t'); b.append(getYAxisLabel()); b.append('\n'); for (final Pair<String, Float> p : landscape) { b.append(p.getFirst()); b.append('\t'); b.append(Float.toString(p.getSecond())); b.append('\n'); } txaRaw.setText(b.toString()); txaRaw.select(0, 0); } }
@SuppressWarnings("unchecked") private void checkEnabled(final boolean enabled) { cboDisplayType.setEnabled(enabled); cmdSave.setEnabled(enabled); lblBins.setEnabled(enabled); spnBins.setEnabled(enabled); pnlLineChart.setSelectionEnabled(enabled); pnlHistogram.setSelectionEnabled(enabled); final Pair<String, Component> p = (Pair<String, Component>) cboDisplayType.getSelectedItem(); if (enabled) { boolean zoomed = false; if (p.getSecond() == scpLineChart) { zoomed = !stkLineChartZoom.empty(); } else if (p.getSecond() == scpHistogram) { zoomed = !stkHistogramZoom.empty(); } cmdUnzoom.setEnabled(zoomed); cmdResetView.setEnabled(zoomed); } else { cmdUnzoom.setEnabled(false); cmdResetView.setEnabled(false); } }
public void setYAxisLabel(final String label) { pnlLineChart.setYAxisLabel(label); pnlHistogram.setXAxisLabel(label); }
public void setXAxisLabel(final String label) { pnlLineChart.setXAxisLabel(label); }
private void jbInit() { setLayout(bolThis); pnlDisplay.setLayout(crdDisplay); cmdSave.setText("Save"); cmdSave.addActionListener(this); cmdUnzoom.addActionListener(this); cmdResetView.addActionListener(this); cmdUnzoom.setText("Unzoom"); cmdResetView.setText("Reset View"); pnlDisplayControls.setLayout(crdDisplayControls); pnlControls.setLayout(gblControls); pnlHistogramControls.setLayout(gblHistogramControls); lblBins.setText("Bins:"); spnBins.setMinimumSize(new Dimension(60, 20)); spnBins.setPreferredSize(new Dimension(60, 20)); spnBins.addChangeListener(this); spnBins.setModel(new SpinnerNumberModel(new Integer(10), new Integer(1), null, new Integer(1))); pnlZoomControls.setLayout(crdZoomControls); pnlZoomable.setLayout(gblZoomable); scpLineChart.setBorder(BorderFactory.createLoweredBevelBorder()); scpHistogram.setBorder(BorderFactory.createLoweredBevelBorder()); scpRaw.setBorder(BorderFactory.createLoweredBevelBorder()); cboDisplayType.addItemListener(this); txaRaw.setEditable(false); pnlHistogram.setYAxisLabel("Count"); cmdMaximize.setText("Maximize"); cmdMaximize.addActionListener(new LandscapePanel_cmdMaximize_actionAdapter(this)); this.add(pnlControls, java.awt.BorderLayout.SOUTH); this.add(pnlDisplay, java.awt.BorderLayout.CENTER); pnlDisplay.add(scpLineChart, "Line Chart"); pnlDisplay.add(scpHistogram, "Histogram"); pnlDisplay.add(scpRaw, "Raw Text"); scpLineChart.getViewport().add(pnlLineChart); scpHistogram.getViewport().add(pnlHistogram); scpRaw.getViewport().add(txaRaw); pnlLineChart.addSelectionListener(this); pnlHistogram.addSelectionListener(this); cboDisplayType.addItem(new DisplayPair<String, Component>("Line Chart", scpLineChart)); cboDisplayType.addItem(new DisplayPair<String, Component>("Histogram", scpHistogram)); cboDisplayType.addItem(new DisplayPair<String, Component>("Raw Text", scpRaw)); pnlZoomControls.add(pnlZoomable, "Zoomable"); pnlZoomControls.add(pnlUnzoomable, "Unzoomable"); pnlZoomable.add( cmdUnzoom, new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 0), 0, 0)); pnlZoomable.add( cmdResetView, new GridBagConstraints( 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 0), 0, 0)); pnlHistogramControls.add( lblBins, new GridBagConstraints( 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 0), 0, 0)); pnlHistogramControls.add( spnBins, new GridBagConstraints( 2, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); pnlDisplayControls.add(pnlLineChartControls, "Line Chart"); pnlDisplayControls.add(pnlHistogramControls, "Histogram"); pnlDisplayControls.add(pnlRawControls, "Raw Text"); pnlControls.add( pnlZoomControls, new GridBagConstraints( 1, 0, 1, 2, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); pnlControls.add( cboDisplayType, new GridBagConstraints( 0, 0, 1, 2, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 0), 0, 0)); pnlControls.add( pnlDisplayControls, new GridBagConstraints( 3, 0, 1, 2, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); pnlControls.add( cmdMaximize, new GridBagConstraints( 4, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 0), 0, 0)); pnlControls.add( cmdSave, new GridBagConstraints( 5, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); }
public String getYAxisLabel() { return pnlLineChart.getYAxisLabel(); }