package tr.gov.ulakbim.jDenetX.gui.clustertab;
import tr.gov.ulakbim.jDenetX.gui.FileExtensionFilter;
import tr.gov.ulakbim.jDenetX.gui.visualization.GraphCanvas;
import tr.gov.ulakbim.jDenetX.gui.visualization.RunVisualizer;
import tr.gov.ulakbim.jDenetX.gui.visualization.StreamPanel;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
/*
* ClusteringVisualTab.java
*
* Created on 20.03.2010, 09:48:06
*/
/**
* @author admin
*/
public class ClusteringVisualTab extends javax.swing.JPanel implements ActionListener {
RunVisualizer visualizer = null;
Thread visualizerThread = null;
Boolean running = false;
ClusteringSetupTab clusteringSetupTab = null;
private String exportFile;
/**
* Creates new form ClusteringVisualTab
*/
public ClusteringVisualTab() {
resetComponents();
}
private void resetComponents() {
initComponents();
comboY.setSelectedIndex(1);
graphCanvas.setViewport(graphScrollPanel.getViewport());
//TODO this needs to only affect the visual Panel
ToolTipManager.sharedInstance().setDismissDelay(20000);
ToolTipManager.sharedInstance().setInitialDelay(100);
}
public void setClusteringSetupTab(ClusteringSetupTab clusteringSetupTab) {
this.clusteringSetupTab = clusteringSetupTab;
}
private void createVisualiterThread() {
visualizer = new RunVisualizer(this, clusteringSetupTab);
visualizerThread = new Thread(visualizer);
}
public void setDimensionComobBoxes(int numDimensions) {
String[] dimensions = new String[numDimensions];
for (int i = 0; i < dimensions.length; i++) {
dimensions[i] = "Dim " + (i + 1);
}
comboX.setModel(new javax.swing.DefaultComboBoxModel(dimensions));
comboY.setModel(new javax.swing.DefaultComboBoxModel(dimensions));
comboY.setSelectedIndex(1);
}
public StreamPanel getLeftStreamPanel() {
return streamPanel0;
}
public StreamPanel getRightStreamPanel() {
return streamPanel1;
}
public GraphCanvas getGraphCanvas() {
return graphCanvas;
}
public ClusteringVisualEvalPanel getEvalPanel() {
return clusteringVisualEvalPanel1;
}
public boolean isEnabledDrawPoints() {
return checkboxDrawPoints.isSelected();
}
public boolean isEnabledDrawGroundTruth() {
return checkboxDrawGT.isSelected();
}
public boolean isEnabledDrawMicroclustering() {
return checkboxDrawMicro.isSelected();
}
public boolean isEnabledDrawClustering() {
return checkboxDrawClustering.isSelected();
}
public void setProcessedPointsCounter(int value) {
label_processed_points_value.setText(Integer.toString(value));
}
public int getPauseInterval() {
return Integer.parseInt(numPauseAfterPoints.getText());
}
public void setPauseInterval(int pause) {
numPauseAfterPoints.setText(Integer.toString(pause));
}
@Override
public void repaint() {
if (splitVisual != null)
splitVisual.setDividerLocation(splitVisual.getWidth() / 2);
super.repaint();
}
public void toggleVisualizer(boolean internal) {
if (visualizer == null)
createVisualiterThread();
if (!visualizerThread.isAlive()) {
visualizerThread.start();
}
//pause
if (running) {
running = false;
visualizer.pause();
buttonRun.setText("Resume");
} else {
running = true;
visualizer.resume();
buttonRun.setText("Pause");
}
if (internal)
clusteringSetupTab.toggleRunMode();
}
public void stopVisualizer() {
visualizer.stop();
running = false;
visualizer = null;
visualizerThread = null;
removeAll();
resetComponents();
}
/**
* 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")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jSplitPane1 = new javax.swing.JSplitPane();
topWrapper = new javax.swing.JPanel();
panelVisualWrapper = new javax.swing.JPanel();
splitVisual = new javax.swing.JSplitPane();
scrollPane1 = new javax.swing.JScrollPane();
streamPanel1 = new tr.gov.ulakbim.jDenetX.gui.visualization.StreamPanel();
scrollPane0 = new javax.swing.JScrollPane();
streamPanel0 = new tr.gov.ulakbim.jDenetX.gui.visualization.StreamPanel();
panelControl = new javax.swing.JPanel();
buttonRun = new javax.swing.JButton();
buttonStop = new javax.swing.JButton();
buttonScreenshot = new javax.swing.JButton();
speedSlider = new javax.swing.JSlider();
jLabel1 = new javax.swing.JLabel();
comboX = new javax.swing.JComboBox();
labelX = new javax.swing.JLabel();
comboY = new javax.swing.JComboBox();
labelY = new javax.swing.JLabel();
checkboxDrawPoints = new javax.swing.JCheckBox();
checkboxDrawGT = new javax.swing.JCheckBox();
checkboxDrawMicro = new javax.swing.JCheckBox();
checkboxDrawClustering = new javax.swing.JCheckBox();
label_processed_points = new javax.swing.JLabel();
label_processed_points_value = new javax.swing.JLabel();
labelNumPause = new javax.swing.JLabel();
numPauseAfterPoints = new javax.swing.JTextField();
panelEvalOutput = new javax.swing.JPanel();
clusteringVisualEvalPanel1 = new tr.gov.ulakbim.jDenetX.gui.clustertab.ClusteringVisualEvalPanel();
graphPanel = new javax.swing.JPanel();
graphPanelControlTop = new javax.swing.JPanel();
buttonZoomInY = new javax.swing.JButton();
buttonZoomOutY = new javax.swing.JButton();
labelEvents = new javax.swing.JLabel();
graphScrollPanel = new javax.swing.JScrollPane();
graphCanvas = new tr.gov.ulakbim.jDenetX.gui.visualization.GraphCanvas();
graphPanelControlBottom = new javax.swing.JPanel();
buttonZoomInX = new javax.swing.JButton();
buttonZoomOutX = new javax.swing.JButton();
setLayout(new java.awt.GridBagLayout());
jSplitPane1.setDividerLocation(400);
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
topWrapper.setPreferredSize(new java.awt.Dimension(688, 500));
topWrapper.setLayout(new java.awt.GridBagLayout());
panelVisualWrapper.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
panelVisualWrapper.setLayout(new java.awt.BorderLayout());
splitVisual.setDividerLocation(403);
splitVisual.setResizeWeight(1.0);
streamPanel1.setPreferredSize(new java.awt.Dimension(400, 250));
javax.swing.GroupLayout streamPanel1Layout = new javax.swing.GroupLayout(streamPanel1);
streamPanel1.setLayout(streamPanel1Layout);
streamPanel1Layout.setHorizontalGroup(
streamPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 428, Short.MAX_VALUE)
);
streamPanel1Layout.setVerticalGroup(
streamPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 339, Short.MAX_VALUE)
);
scrollPane1.setViewportView(streamPanel1);
splitVisual.setRightComponent(scrollPane1);
scrollPane0.addMouseWheelListener(new java.awt.event.MouseWheelListener() {
public void mouseWheelMoved(java.awt.event.MouseWheelEvent evt) {
scrollPane0MouseWheelMoved(evt);
}
});
streamPanel0.setPreferredSize(new java.awt.Dimension(400, 250));
javax.swing.GroupLayout streamPanel0Layout = new javax.swing.GroupLayout(streamPanel0);
streamPanel0.setLayout(streamPanel0Layout);
streamPanel0Layout.setHorizontalGroup(
streamPanel0Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
streamPanel0Layout.setVerticalGroup(
streamPanel0Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 339, Short.MAX_VALUE)
);
scrollPane0.setViewportView(streamPanel0);
splitVisual.setLeftComponent(scrollPane0);
panelVisualWrapper.add(splitVisual, java.awt.BorderLayout.CENTER);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 400;
gridBagConstraints.ipady = 200;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
topWrapper.add(panelVisualWrapper, gridBagConstraints);
panelControl.setMinimumSize(new java.awt.Dimension(600, 52));
panelControl.setPreferredSize(new java.awt.Dimension(600, 52));
panelControl.setLayout(new java.awt.GridBagLayout());
buttonRun.setText("Start");
buttonRun.setPreferredSize(new java.awt.Dimension(90, 23));
buttonRun.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
buttonRunMouseClicked(evt);
}
});
buttonRun.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonRunActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(3, 5, 1, 5);
panelControl.add(buttonRun, gridBagConstraints);
buttonStop.setText("Stop");
buttonStop.setPreferredSize(new java.awt.Dimension(90, 23));
buttonStop.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonStopActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(1, 5, 1, 5);
panelControl.add(buttonStop, gridBagConstraints);
buttonScreenshot.setText("Screenshot");
buttonScreenshot.setPreferredSize(new java.awt.Dimension(90, 23));
buttonScreenshot.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
buttonScreenshotMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(3, 5, 1, 5);
panelControl.add(buttonScreenshot, gridBagConstraints);
speedSlider.setValue(100);
speedSlider.setBorder(javax.swing.BorderFactory.createTitledBorder("Visualisation Speed"));
speedSlider.setPreferredSize(new java.awt.Dimension(120, 48));
speedSlider.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
speedSliderMouseDragged(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 6;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridheight = 2;
gridBagConstraints.insets = new java.awt.Insets(0, 16, 1, 5);
panelControl.add(speedSlider, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 9;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridheight = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
panelControl.add(jLabel1, gridBagConstraints);
comboX.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Dim 1", "Dim 2", "Dim 3", "Dim 4"}));
comboX.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboXActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
panelControl.add(comboX, gridBagConstraints);
labelX.setText("X");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(0, 14, 0, 5);
panelControl.add(labelX, gridBagConstraints);
comboY.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Dim 1", "Dim 2", "Dim 3", "Dim 4"}));
comboY.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboYActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
panelControl.add(comboY, gridBagConstraints);
labelY.setText("Y");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(0, 14, 0, 5);
panelControl.add(labelY, gridBagConstraints);
checkboxDrawPoints.setSelected(true);
checkboxDrawPoints.setText("Points");
checkboxDrawPoints.setMargin(new java.awt.Insets(0, 0, 0, 0));
checkboxDrawPoints.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkboxDrawPointsActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 20, 0, 4);
panelControl.add(checkboxDrawPoints, gridBagConstraints);
checkboxDrawGT.setSelected(true);
checkboxDrawGT.setText("Ground truth");
checkboxDrawGT.setMargin(new java.awt.Insets(0, 0, 0, 0));
checkboxDrawGT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkboxDrawGTActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 5;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
panelControl.add(checkboxDrawGT, gridBagConstraints);
checkboxDrawMicro.setSelected(true);
checkboxDrawMicro.setText("Microclustering");
checkboxDrawMicro.setMargin(new java.awt.Insets(0, 0, 0, 0));
checkboxDrawMicro.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkboxDrawMicroActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 20, 0, 4);
panelControl.add(checkboxDrawMicro, gridBagConstraints);
checkboxDrawClustering.setSelected(true);
checkboxDrawClustering.setText("Clustering");
checkboxDrawClustering.setMargin(new java.awt.Insets(0, 0, 0, 0));
checkboxDrawClustering.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkboxDrawClusteringActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 5;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
panelControl.add(checkboxDrawClustering, gridBagConstraints);
label_processed_points.setText("Processed:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 7;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
panelControl.add(label_processed_points, gridBagConstraints);
label_processed_points_value.setText("0");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 8;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 1.0;
panelControl.add(label_processed_points_value, gridBagConstraints);
labelNumPause.setText("Pause in:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 7;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
panelControl.add(labelNumPause, gridBagConstraints);
numPauseAfterPoints.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
numPauseAfterPoints.setText("10000");
numPauseAfterPoints.setPreferredSize(new java.awt.Dimension(70, 20));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 8;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
panelControl.add(numPauseAfterPoints, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
topWrapper.add(panelControl, gridBagConstraints);
jSplitPane1.setLeftComponent(topWrapper);
panelEvalOutput.setBorder(javax.swing.BorderFactory.createTitledBorder("Evaluation"));
panelEvalOutput.setLayout(new java.awt.GridBagLayout());
clusteringVisualEvalPanel1.setMinimumSize(new java.awt.Dimension(280, 118));
clusteringVisualEvalPanel1.setPreferredSize(new java.awt.Dimension(290, 115));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weighty = 1.0;
panelEvalOutput.add(clusteringVisualEvalPanel1, gridBagConstraints);
graphPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Plot"));
graphPanel.setPreferredSize(new java.awt.Dimension(530, 115));
graphPanel.setLayout(new java.awt.GridBagLayout());
graphPanelControlTop.setLayout(new java.awt.GridBagLayout());
buttonZoomInY.setText("Zoom in Y");
buttonZoomInY.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonZoomInYActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
graphPanelControlTop.add(buttonZoomInY, gridBagConstraints);
buttonZoomOutY.setText("Zoom out Y");
buttonZoomOutY.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonZoomOutYActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
graphPanelControlTop.add(buttonZoomOutY, gridBagConstraints);
labelEvents.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
graphPanelControlTop.add(labelEvents, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 1.0;
graphPanel.add(graphPanelControlTop, gridBagConstraints);
graphCanvas.setPreferredSize(new java.awt.Dimension(500, 111));
javax.swing.GroupLayout graphCanvasLayout = new javax.swing.GroupLayout(graphCanvas);
graphCanvas.setLayout(graphCanvasLayout);
graphCanvasLayout.setHorizontalGroup(
graphCanvasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 515, Short.MAX_VALUE)
);
graphCanvasLayout.setVerticalGroup(
graphCanvasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 128, Short.MAX_VALUE)
);
graphScrollPanel.setViewportView(graphCanvas);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
graphPanel.add(graphScrollPanel, gridBagConstraints);
buttonZoomInX.setText("Zoom in X");
buttonZoomInX.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonZoomInXActionPerformed(evt);
}
});
graphPanelControlBottom.add(buttonZoomInX);
buttonZoomOutX.setText("Zoom out X");
buttonZoomOutX.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonZoomOutXActionPerformed(evt);
}
});
graphPanelControlBottom.add(buttonZoomOutX);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
graphPanel.add(graphPanelControlBottom, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 2.0;
gridBagConstraints.weighty = 1.0;
panelEvalOutput.add(graphPanel, gridBagConstraints);
jSplitPane1.setRightComponent(panelEvalOutput);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
add(jSplitPane1, gridBagConstraints);
}// </editor-fold>//GEN-END:initComponents
private void buttonScreenshotMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_buttonScreenshotMouseClicked
streamPanel0.screenshot("Moa\\MOAStreamPanel1", true, true);
streamPanel1.screenshot("Moa\\MOAStreamPanel2", true, true);
}//GEN-LAST:event_buttonScreenshotMouseClicked
private void buttonRunMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_buttonRunMouseClicked
toggleVisualizer(true);
}//GEN-LAST:event_buttonRunMouseClicked
private void speedSliderMouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_speedSliderMouseDragged
visualizer.setSpeed((int) (speedSlider.getValue() / (100.0 / 15.0)));
}//GEN-LAST:event_speedSliderMouseDragged
private void scrollPane0MouseWheelMoved(java.awt.event.MouseWheelEvent evt) {//GEN-FIRST:event_scrollPane0MouseWheelMoved
streamPanel0.setZoom(evt.getX(), evt.getY(), (-1) * evt.getWheelRotation(), scrollPane0);
}//GEN-LAST:event_scrollPane0MouseWheelMoved
private void buttonZoomInXActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomInXActionPerformed
graphCanvas.scaleXResolution(false);
}//GEN-LAST:event_buttonZoomInXActionPerformed
private void buttonZoomOutYActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomOutYActionPerformed
graphCanvas.setSize(new Dimension(graphCanvas.getWidth(), (int) (graphCanvas.getHeight() * 0.8)));
graphCanvas.setPreferredSize(new Dimension(graphCanvas.getWidth(), (int) (graphCanvas.getHeight() * 0.8)));
}//GEN-LAST:event_buttonZoomOutYActionPerformed
private void buttonZoomOutXActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomOutXActionPerformed
graphCanvas.scaleXResolution(true);
}//GEN-LAST:event_buttonZoomOutXActionPerformed
private void buttonZoomInYActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomInYActionPerformed
graphCanvas.setSize(new Dimension(graphCanvas.getWidth(), (int) (graphCanvas.getHeight() * 1.2)));
graphCanvas.setPreferredSize(new Dimension(graphCanvas.getWidth(), (int) (graphCanvas.getHeight() * 1.2)));
}//GEN-LAST:event_buttonZoomInYActionPerformed
private void checkboxDrawPointsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkboxDrawPointsActionPerformed
visualizer.setPointLayerVisibility(checkboxDrawPoints.isSelected());
}//GEN-LAST:event_checkboxDrawPointsActionPerformed
private void checkboxDrawMicroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkboxDrawMicroActionPerformed
//visualizer.redrawClusterings();
visualizer.setMicroLayerVisibility(checkboxDrawMicro.isSelected());
}//GEN-LAST:event_checkboxDrawMicroActionPerformed
private void checkboxDrawGTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkboxDrawGTActionPerformed
//visualizer.redrawClusterings();
visualizer.setGroundTruthVisibility(checkboxDrawGT.isSelected());
}//GEN-LAST:event_checkboxDrawGTActionPerformed
private void checkboxDrawClusteringActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkboxDrawClusteringActionPerformed
//visualizer.redrawClusterings();
visualizer.setMacroVisibility(checkboxDrawClustering.isSelected());
}//GEN-LAST:event_checkboxDrawClusteringActionPerformed
private void comboXActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboXActionPerformed
JComboBox cb = (JComboBox) evt.getSource();
int dim = cb.getSelectedIndex();
streamPanel0.setActiveXDim(dim);
streamPanel1.setActiveXDim(dim);
if (visualizer != null)
visualizer.redraw();
}//GEN-LAST:event_comboXActionPerformed
private void comboYActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboYActionPerformed
JComboBox cb = (JComboBox) evt.getSource();
int dim = cb.getSelectedIndex();
streamPanel0.setActiveYDim(dim);
streamPanel1.setActiveYDim(dim);
if (visualizer != null)
visualizer.redraw();
}//GEN-LAST:event_comboYActionPerformed
private void buttonStopActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStopActionPerformed
stopVisualizer();
clusteringSetupTab.stopRun();
}//GEN-LAST:event_buttonStopActionPerformed
private void buttonRunActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRunActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_buttonRunActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonRun;
private javax.swing.JButton buttonScreenshot;
private javax.swing.JButton buttonStop;
private javax.swing.JButton buttonZoomInX;
private javax.swing.JButton buttonZoomInY;
private javax.swing.JButton buttonZoomOutX;
private javax.swing.JButton buttonZoomOutY;
private javax.swing.JCheckBox checkboxDrawClustering;
private javax.swing.JCheckBox checkboxDrawGT;
private javax.swing.JCheckBox checkboxDrawMicro;
private javax.swing.JCheckBox checkboxDrawPoints;
private tr.gov.ulakbim.jDenetX.gui.clustertab.ClusteringVisualEvalPanel clusteringVisualEvalPanel1;
private javax.swing.JComboBox comboX;
private javax.swing.JComboBox comboY;
private tr.gov.ulakbim.jDenetX.gui.visualization.GraphCanvas graphCanvas;
private javax.swing.JPanel graphPanel;
private javax.swing.JPanel graphPanelControlBottom;
private javax.swing.JPanel graphPanelControlTop;
private javax.swing.JScrollPane graphScrollPanel;
private javax.swing.JLabel jLabel1;
private javax.swing.JSplitPane jSplitPane1;
private javax.swing.JLabel labelEvents;
private javax.swing.JLabel labelNumPause;
private javax.swing.JLabel labelX;
private javax.swing.JLabel labelY;
private javax.swing.JLabel label_processed_points;
private javax.swing.JLabel label_processed_points_value;
private javax.swing.JTextField numPauseAfterPoints;
private javax.swing.JPanel panelControl;
private javax.swing.JPanel panelEvalOutput;
private javax.swing.JPanel panelVisualWrapper;
private javax.swing.JScrollPane scrollPane0;
private javax.swing.JScrollPane scrollPane1;
private javax.swing.JSlider speedSlider;
private javax.swing.JSplitPane splitVisual;
private tr.gov.ulakbim.jDenetX.gui.visualization.StreamPanel streamPanel0;
private tr.gov.ulakbim.jDenetX.gui.visualization.StreamPanel streamPanel1;
private javax.swing.JPanel topWrapper;
// End of variables declaration//GEN-END:variables
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof JButton) {
if (e.getActionCommand().equals("csv export")) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setAcceptAllFileFilterUsed(true);
fileChooser.addChoosableFileFilter(new FileExtensionFilter("csv"));
if (exportFile != null)
fileChooser.setSelectedFile(new File(exportFile));
if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
exportFile = fileChooser.getSelectedFile().getPath();
visualizer.exportCSV(exportFile);
}
}
if (e.getActionCommand().equals("weka export")) {
visualizer.weka();
}
}
}
}