package vishnu.testvis.visual; import java.awt.*; import javax.swing.*; import javax.swing.border.*; import java.awt.event.*; public class RadVizPanel extends JPanel { protected CvManyPoints canvas1; public java.awt.Label docLabel; protected KeywordPanel keyWordPanel; protected Panel south = new Panel(); protected Border border1; protected JPanel buttonPanel = new JPanel(); protected JPanel buttonBasePanel = new JPanel(); protected JPanel labelPanel = new JPanel(); protected JLabel buttonLabel = new JLabel(); protected JButton zoomInButton = new JButton(); protected JButton zoomOutButton = new JButton(); protected JButton resetButton = new JButton(); protected JButton clusterButton = new JButton(); protected JCheckBox showGridCheckBox = new JCheckBox(); protected JCheckBox lockCheckBox = new JCheckBox(); protected JCheckBox showRimCheckBox = new JCheckBox(); protected JCheckBox projectCheckBox = new JCheckBox(); protected int smallFont = 14; protected int largeFont = 16; protected Border border3; protected BorderLayout borderLayout1 = new BorderLayout(10,0); protected Vishnu parent; public RadVizPanel(Vishnu p) { parent = p; try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { border1 = BorderFactory.createEmptyBorder(5,5,5,5); border3 = BorderFactory.createEmptyBorder(10,10,10,10); this.setLayout(borderLayout1); this.setBorder(border3); this.setPreferredSize(new Dimension(600, 400)); canvas1 = new CvManyPoints (parent); // This is used as a balloon by the canvas1 docLabel = new java.awt.Label(" "); docLabel.setVisible(false); // place it out of view if does become visible docLabel.setBounds(12,-20,10,10); docLabel.setBackground(new Color(16776895)); docLabel.setFont(new Font("Dialog", Font.PLAIN, largeFont)); add(docLabel); add(canvas1, "Center"); keyWordPanel = new KeywordPanel(canvas1, this); keyWordPanel.setVisible(false); buttonBasePanel.setLayout(new BorderLayout(10,10)); buttonPanel.setLayout(new GridLayout(0,2,10,10)); buttonLabel.setText("Settings"); buttonLabel.setForeground(Color.black); buttonLabel.setFont(new java.awt.Font("Monospaced", 0, largeFont)); zoomInButton.setText("Zoom in"); zoomInButton.setFont(new java.awt.Font("Monospaced", 0, largeFont)); zoomInButton.setBorder(BorderFactory.createEtchedBorder()); zoomInButton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { zoomInButton_mouseClicked(e); } }); zoomOutButton.setText("Zoom Out"); zoomOutButton.setFont(new java.awt.Font("Monospaced", 0,largeFont)); zoomOutButton.setBorder(BorderFactory.createEtchedBorder()); zoomOutButton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { zoomOutButton_mouseClicked(e); } }); resetButton.setText("Reset"); resetButton.setFont(new java.awt.Font("Monospaced", 0, largeFont)); resetButton.setBorder(BorderFactory.createEtchedBorder()); resetButton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { resetButton_mouseClicked(e); } }); clusterButton.setText("Cluster"); clusterButton.setFont(new java.awt.Font("Monospaced", 0, largeFont)); clusterButton.setBorder(BorderFactory.createEtchedBorder()); clusterButton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { clusterButton_mouseClicked(e); } }); showGridCheckBox.setText("Show Grid"); showGridCheckBox.setFont(new java.awt.Font("Monospaced", 0, largeFont)); showGridCheckBox.setSelected(false); showGridCheckBox.setBorder(BorderFactory.createEtchedBorder()); showGridCheckBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) { showGridCheckBox_itemStateChanged(e); } }); showRimCheckBox.setText("Show Rim"); showRimCheckBox.setFont(new java.awt.Font("Monospaced", 0, largeFont)); showRimCheckBox.setSelected(true); showRimCheckBox.setBorder(BorderFactory.createEtchedBorder()); showRimCheckBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) { showRimCheckBox_itemStateChanged(e); } }); projectCheckBox.setText("Projection"); projectCheckBox.setFont(new java.awt.Font("Monospaced", 0, largeFont)); projectCheckBox.setSelected(true); projectCheckBox.setBorder(BorderFactory.createEtchedBorder()); projectCheckBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) { projectCheckBox_itemStateChanged(e); } }); lockCheckBox.setText("Lock Radius"); lockCheckBox.setFont(new java.awt.Font("Monospaced", 0, largeFont)); lockCheckBox.setSelected(false); lockCheckBox.setBorder(BorderFactory.createEtchedBorder()); lockCheckBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) { lockCheckBox_itemStateChanged(e); } }); buttonPanel.add(zoomInButton); buttonPanel.add(zoomOutButton); buttonPanel.add(resetButton); buttonPanel.add(clusterButton); buttonPanel.add(showGridCheckBox); buttonPanel.add(showRimCheckBox); buttonPanel.add(projectCheckBox); buttonPanel.add(lockCheckBox); labelPanel.add(buttonLabel); buttonBasePanel.add(buttonPanel,"Center"); buttonBasePanel.add(labelPanel,"North"); south.setLayout(new BorderLayout(10,0)); south.add(keyWordPanel,"West"); south.add(buttonBasePanel,"East"); south.setVisible(false); add(south,"South"); } public void setBothVisible(boolean f) { keyWordPanel.setVisible(f); canvas1.setVisible(f); south.setVisible(f); } public void addNotify() { //Record the size of the window prior to calling parents addNotify. Dimension d = getSize(); super.addNotify(); if (fComponentsAdjusted) return; // Adjust components according to the insets setSize(getInsets().left + getInsets().right + d.width, getInsets().top + getInsets().bottom + d.height); Component components[] = getComponents(); for (int i = 0; i < components.length; i++) { Point p = components[i].getLocation(); p.translate(getInsets().left, getInsets().top); components[i].setLocation(p); } fComponentsAdjusted = true; } void zoomOutButton_mouseClicked(MouseEvent e) { canvas1.higher(); } void zoomInButton_mouseClicked(MouseEvent e) { canvas1.flatter(); } void resetButton_mouseClicked(MouseEvent e) { canvas1.recalc(); } void clusterButton_mouseClicked(MouseEvent e) { canvas1.cluster(); } void showGridCheckBox_itemStateChanged(ItemEvent e) { canvas1.grid(showGridCheckBox.isSelected()); } void showRimCheckBox_itemStateChanged(ItemEvent e) { canvas1.rim(showRimCheckBox.isSelected()); } void projectCheckBox_itemStateChanged(ItemEvent e) { canvas1.projection(projectCheckBox.isSelected()); } void lockCheckBox_itemStateChanged(ItemEvent e) { canvas1.lock(lockCheckBox.isSelected()); } public void update() { canvas1.update(); keyWordPanel.update(); } public void setVisible(boolean f) { super.setVisible(f); setBothVisible(f); } public void paint(Graphics g) { System.out.println("Updating RadVizPanel"); //canvas1.update(); keyWordPanel.update(); } protected boolean fComponentsAdjusted = false; }