// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.plugins.visualization.localsfvis; import graphtea.graph.event.GraphSelectData; import graphtea.platform.core.Listener; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * @author azin azadi */ public class LSFUI extends JPanel implements ActionListener { private static final long serialVersionUID = 3844363865479171073L; private LocalSF target; private Listener n = new Listener() { //todo: what does this performJob do (Rouzbeh)? public void performJob(String name) { animatorLSF a = target.getCurrentAnimator(); if (a != null) dynamic.setSelected(a.isDynamic); } public void keyChanged(String name, Object value) { animatorLSF a = target.getCurrentAnimator(); if (a != null) dynamic.setSelected(a.isDynamic); } public boolean isEnable() { return isVisible(); } }; void setTaget(LocalSF trg) { this.target = trg; initComponents(); trg.getBlackBoard().addListener(GraphSelectData.EVENT_KEY, n); } private void initComponents() { start = new javax.swing.JButton(); stop = new javax.swing.JButton(); opener = new javax.swing.JButton(); closer = new javax.swing.JButton(); stress = new javax.swing.JButton(); dynamic = new javax.swing.JCheckBox(); setLayout(new java.awt.GridLayout(3, 2)); start.setText("Start"); start.addActionListener(this); add(start); stop.setText("Stop"); stop.addActionListener(this); add(stop); opener.setText("+"); opener.addActionListener(this); add(opener); closer.setText("-"); closer.addActionListener(this); add(closer); stress.setText("Stress"); stress.addActionListener(this); add(stress); dynamic.setText("Automatic"); dynamic.setSelected(true); dynamic.addActionListener(this); dynamic.setSelected(true); updateButtons(); add(dynamic); } // Variables declaration - do not modify private javax.swing.JCheckBox dynamic; private javax.swing.JButton closer; private javax.swing.JButton opener; private javax.swing.JButton start; private javax.swing.JButton stop; private javax.swing.JButton stress; // End of variables declaration public void actionPerformed(ActionEvent e) { if (target != null) { animatorLSF anim = this.target.getCurrentAnimator(); if (anim != null) { if (e.getSource() == closer) anim.stronger(); if (e.getSource() == opener) anim.weaker(); if (e.getSource() == stress) anim.temporaryStress = true; if (e.getSource() == dynamic){ updateButtons(); anim.setDynamic(dynamic.isSelected()); } } if (e.getSource() == stop) { target.stop(); } if (e.getSource() == start) { target.start(); anim = this.target.getCurrentAnimator(); anim.setDynamic(dynamic.isSelected()); } } } private void updateButtons() { boolean b = !dynamic.isSelected(); start.setEnabled(b); closer.setEnabled(b); opener.setEnabled(b); // stop.setEnabled(b); stress.setEnabled(b); } }