// ModelDebuggerGui.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.*;
public class ModelDebuggerGui extends SwingDialog {
public static ModelDebuggerGui itsme = null;
JFrame owner = null;
// initialize constants used in the application
// REMEMBER -- make constants static!
public void initConstants() {
}
// declare and initialize atomic components here
JButton Open;
JButton Save;
JButton Clear;
JCheckBox CnfFile;
JTextArea Area;
JScrollPane jsp;
JFileChooser chooser;
public void initAtoms() {
Open = new JButton( "Open" );
Open.setToolTipText("open model debugging file");
Open.setBorder( BorderFactory.createRaisedBevelBorder() );
Save = new JButton( "Save" );
Save.setToolTipText("save debugging output");
Save.setBorder( BorderFactory.createRaisedBevelBorder() );
Clear = new JButton( "Clear" );
Clear.setToolTipText( "clear screen" );
Clear.setBorder( BorderFactory.createRaisedBevelBorder() );
CnfFile = new JCheckBox( "CNF File" );
CnfFile.setToolTipText( "save the CNF file" );
CnfFile.setSelected( false );
Area = new JTextArea( 20, 30 );
Area.setEditable(false);
jsp = new JScrollPane( Area );
chooser = new JFileChooser(".");
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
}
// declare and initialize layout components here
JPanel Buttons;
public void initLayout() {
Buttons = new JPanel();
Buttons.setLayout( new GridLayout(0,1) );
//Buttons.setLayout( new BoxLayout(Buttons, BoxLayout.Y_AXIS) );
Buttons.add(Open);
Buttons.add(Save);
Buttons.add(Clear);
Buttons.add(CnfFile);
}
// initialize ContentPane here
public void initContentPane() {
ContentPane = new JPanel();
ContentPane.setLayout( new FlowLayout(FlowLayout.LEFT) );
ContentPane.setBorder(BorderFactory.createEtchedBorder());
ContentPane.add(Buttons);
ContentPane.add(jsp);
}
// initialize listeners here
public void initListeners() {
Clear.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
Area.setText("");
}
});
Open.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int returnVal = chooser.showOpenDialog(owner);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
String name = file.getName();
try {
Area.setText("");
//itsme = ModelDebuggerGui.this;
solverTest.modelDebug( name, CnfFile.isSelected() );
}
catch ( Exception ee ) {
Area.append( "Exception in processing " + name + " " +
ee.getMessage() + "\n");
Area.append( "Processing of " + name + " aborted" );
}
} else {
Area.append("Open command cancelled by user./n");
}
}
});
Save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int returnVal = chooser.showOpenDialog(owner);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
try {
PrintWriter pw = new PrintWriter( new FileOutputStream(file) );
pw.print(Area.getText());
pw.close();
}
catch ( Exception ee ) {
String er = "Exception in writing file " + ee.getMessage();
JOptionPane.showMessageDialog(null, er,
"Error!", JOptionPane.ERROR_MESSAGE);
}
}
Area.setText("");
}
});
}
// place in this method any action for exiting application
public void applicationExit() {
}
void print( String x ) { Area.append(x); }
void println( String x ) { Area.append(x + "\n"); }
public ModelDebuggerGui(JFrame owner, boolean modal) {
super(owner, modal);
setLocationRelativeTo(owner);
itsme = (ModelDebuggerGui) this;
this.owner = owner;
}
public ModelDebuggerGui(JFrame owner, String AppTitle, boolean modal) {
super(owner, AppTitle, modal);
setLocationRelativeTo(owner);
itsme = (ModelDebuggerGui) this;
this.owner = owner;
}
}