Commit 8f23bc6e authored by Markus Bauer's avatar Markus Bauer
Browse files

Merge branch 'origin/master'

Conflicts:
	PseuCoCo.jar
	src/Compiler/Pseuco.java
	src/debugger/DebuggerListeners.aj
	src/resources/include.zip
	src/resources/include_debug.zip
parents d0d930e3 84a71610
TODO:
-Add: Projectview (like eclipse)
-Fix: Use System.getProperty("line.separator") instead of "/" (Not sure if I changed them all :P)
-Fix: JSyntaxpane: nach { die geschlossene Klammer automatisch setzen
-Fix: Set position of new windows to desktop mid
Changelog
-Fix: Same size for debug and value frame
-Add: Font size (+Shortcut(Strg+0/+/-))
-Add: Rename projects
-Fix: Save as when no project is loaded
-Add: Chooseable workspace
......@@ -48,46 +50,18 @@ Changelog
TODO Debugger
- More infos
- startet by [OK]
- Stacktrace [OK]
- internal state [FAIL]
- Statistics??? [OK]
- Globale Variablen? [OK]
- X Arrays
- ? Agents
- X Channels
- X Locks
- X Objects (ref)
- X Struct/Monitor
- _ Conditions
- OK Testen: select case
- X Gui: button plazieren, erst nach compilieren aktivieren
- Globale Variablen?
- editieren???
- Auto-refresh???
- X Array-loadchild-struktur ist VERKACKT!!!
- Breakpoints???
- Single step [OK]
- (evtl. join, waiting, loop, ...)? [OK]
- Rename threads to agents => LISA
- More buttons: restart [OK]
- Stop all wirft error [FIXED]
- Alle ein/ausklappen [OK]
TODO LISA
- Changelog
- Wann kommen die agents? ===JETZT===
Bugs im Compiler
(-) ChildFirstURLClassLoader
- MainCodeGen: 182 => null-Pointer (insert "if (reader!=null) ")
- PseuCoCo: 204 => task.call wird Rückgabewert nicht geprüft
(-) Was gibts noch an Schlüsselwörtern?
- Rename threads to agents
- lock-Prozedur wirft komischen Fehler...
......@@ -22,4 +22,4 @@ mainAgent{
a1 = start m.countDutch (); // Ich lass einen Agenten los !
a2 = start countFrench (); // Ich lass einen Agenten los !
println ( " Beide zaehlen ! " ); // Das sollen alle wissen .
}
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ public aspect FixCompiler {
pointcut exHandler(Throwable t) : call(void main.PseuCoCo.handleExceptions(..)) && args(t);
void around(Throwable t) : exHandler(t){
//t.printStackTrace(gui.Output.err);
if (t instanceof ThreadDeath) return;
proceed(t);
}
......
......@@ -7,9 +7,13 @@ package gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
......@@ -69,6 +73,8 @@ public class GUI extends JFrame {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds((d.width / 8), (d.height / 8), (d.width * 3 / 4),(d.height * 3 / 4));
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new MyDispatcher());
setupView();
setupPopup();
setupToolbar();
......@@ -80,6 +86,44 @@ public class GUI extends JFrame {
input.requestFocusInWindow();
}
private void changeFontSize(int size, boolean reset) {
if (!reset) {
// changeFontSize(toolBar, size);
changeFontSize(output, size);
changeFontSize(input, size);
// changeFontSize(popupMenu, size);
// changeFontSize(popUpRefresh, size); changeFontSize(popUpOpen, size);
// changeFontSize(popUpDelete, size); changeFontSize(popUpRun, size);
// changeFontSize(popUpNew, size); changeFontSize(popUpRename, size);
// changeFontSize(menuOpen, size); changeFontSize(menuRun, size);
// changeFontSize(menuDebug, size); changeFontSize(menuNew, size);
// changeFontSize(menuSave, size); changeFontSize(menuExport, size);
// changeFontSize(menuStop, size); changeFontSize(menuHelp, size);
// changeFontSize(threadCount, size);
// changeFontSize(list, size);
}
else {
// resetFontSize(toolBar, size);
resetFontSize(output, size);
resetFontSize(input, size);
// resetFontSize(popupMenu, size);
// resetFontSize(popUpRefresh, size); resetFontSize(popUpOpen, size);
// resetFontSize(popUpDelete, size); resetFontSize(popUpRun, size);
// resetFontSize(popUpNew, size); resetFontSize(popUpRename, size);
// resetFontSize(menuOpen, size); resetFontSize(menuRun, size);
// resetFontSize(menuDebug, size); resetFontSize(menuNew, size);
// resetFontSize(menuSave, size); resetFontSize(menuExport, size);
// resetFontSize(menuStop, size); resetFontSize(menuHelp, size);
// resetFontSize(threadCount, size);
// resetFontSize(list, size);
}
}
private void changeFontSize(Component c, int size) {
c.setFont(new Font(c.getFont().getFontName(), Font.PLAIN, c.getFont().getSize()+size));
}
private void resetFontSize(Component c, int size) {
c.setFont(new Font(c.getFont().getFontName(), Font.PLAIN, size));
}
/**
* Toolbar
......@@ -104,7 +148,7 @@ public class GUI extends JFrame {
public void run() {
menuStop.setEnabled(false);
menuRun.setEnabled(true);
menuDebug.setEnabled(true);
//menuDebug.setEnabled(true);
popUpRun.setEnabled(true);
}
});
......@@ -114,7 +158,7 @@ public class GUI extends JFrame {
output.setText("");
menuStop.setEnabled(true);
menuRun.setEnabled(false);
menuDebug.setEnabled(false);
//menuDebug.setEnabled(false);
popUpRun.setEnabled(false);
}
});
......@@ -127,12 +171,12 @@ public class GUI extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
String name = JOptionPane.showInputDialog(null, "Enter project name", "New project", JOptionPane.PLAIN_MESSAGE);
if (name != null) {
if (!name.replaceAll(" ", "").equals("")) {
currentProject = name;
File f = new File(Start.workspace+"/"+currentProject+".pseuco");
File f = new File(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
try {
f.createNewFile();
} catch (IOException e1) {
......@@ -175,7 +219,7 @@ public class GUI extends JFrame {
if (JFileChooser.APPROVE_OPTION == fc.showOpenDialog(getContentPane())) {
int res = JOptionPane.showConfirmDialog(null, "Do you want to save your project before opening another?", "Save project", JOptionPane.YES_NO_CANCEL_OPTION);
if (res == JOptionPane.YES_OPTION) {
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
}
if (res != JOptionPane.CANCEL_OPTION || res != JOptionPane.CLOSED_OPTION) {
openPseuCo(fc.getSelectedFile().getAbsolutePath());
......@@ -202,7 +246,7 @@ public class GUI extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
File f = new File(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
if (!f.exists()) {
if (!f.exists() || currentProject.isEmpty()) {
JFileChooser fc = new JFileChooser(Start.workspace);
fc.setFileFilter(new FileFilter() {
@Override
......@@ -237,12 +281,13 @@ public class GUI extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
if (!checkCurrentProject()) return;
JFileChooser fc = new JFileChooser(Start.workspace);
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setAcceptAllFileFilterUsed(false);
if (fc.showOpenDialog(getContentPane()) == JFileChooser.APPROVE_OPTION) {
output.setText("");
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
if (new File(fc.getSelectedFile().getAbsolutePath()).listFiles().length > 0) {
int result = JOptionPane.showConfirmDialog(getContentPane(),
"It seems that this directory already contains files. Exporting will delete them. Are you sure about this?");
......@@ -260,14 +305,16 @@ public class GUI extends JFrame {
menuExport.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put((KeyStroke) action.getValue(Action.ACCELERATOR_KEY), "Export project");
helpItem(menuExport, "Export to java program (Ctrl+E)", "/resources/export");
}
private void runBtn() {
Action action = new AbstractAction() {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
Pseuco.run(Start.workspace+"/"+currentProject+".pseuco");
if (!checkCurrentProject()) return;
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
Pseuco.run(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
}
};
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("F5"));
......@@ -283,8 +330,13 @@ public class GUI extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
Pseuco.debug(Start.workspace+"/"+currentProject+".pseuco");
if (Pseuco.debugging && !menuRun.isEnabled()){
Pseuco.debugger.makeFrame();
return;
}
if (!checkCurrentProject()) return;
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
Pseuco.debug(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
}
};
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("control F5"));
......@@ -359,7 +411,7 @@ public class GUI extends JFrame {
try {
String in = input.getText().replaceAll("\\s", ""), tmp = "", line;
if (!currentProject.equals("")) {
BufferedReader reader = new BufferedReader(new FileReader(Start.workspace+"/"+currentProject+".pseuco"));
BufferedReader reader = new BufferedReader(new FileReader(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco"));
while ((line = reader.readLine()) != null)
tmp += line;
reader.close();
......@@ -369,12 +421,12 @@ public class GUI extends JFrame {
if (!in.equals(tmp) && !in.equals("")) {
result = JOptionPane.showConfirmDialog(null, "Do you want to save your project before opening another?", "Save project", JOptionPane.YES_NO_CANCEL_OPTION);
if (result == JOptionPane.YES_OPTION) {
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
}
}
if (result != JOptionPane.CANCEL_OPTION) {
currentProject = newProject;
openPseuCo(Start.workspace+"/"+newProject+".pseuco");
openPseuCo(Start.workspace+System.getProperty("file.separator")+newProject+".pseuco");
}
if (!menuRun.isEnabled() && !menuStop.isEnabled()) {
menuStop.setEnabled(false); menuRun.setEnabled(true); popUpRun.setEnabled(true);
......@@ -446,12 +498,12 @@ public class GUI extends JFrame {
popUpNew.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
String name = JOptionPane.showInputDialog(null, "Enter project name", "New project", JOptionPane.PLAIN_MESSAGE);
if (name != null) {
if (!name.replaceAll(" ", "").equals("")) {
currentProject = name;
File f = new File(Start.workspace+"/"+currentProject+".pseuco");
File f = new File(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
try {
f.createNewFile();
} catch (IOException e1) {
......@@ -493,7 +545,7 @@ public class GUI extends JFrame {
});
if (JFileChooser.APPROVE_OPTION == fc.showOpenDialog(getContentPane())) {
if (JOptionPane.showConfirmDialog(null, "Do you want to save your project before opening another?", "Save project", JOptionPane.YES_NO_CANCEL_OPTION) == JOptionPane.YES_OPTION) {
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
}
openPseuCo(fc.getSelectedFile().getAbsolutePath());
if (!menuRun.isEnabled() && !menuStop.isEnabled()) {
......@@ -515,8 +567,8 @@ public class GUI extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
output.setText("");
savePseuCo(Start.workspace+"/"+currentProject+".pseuco");
Pseuco.run("projects/" + currentProject + ".pseuco");
savePseuCo(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
Pseuco.run(Start.workspace+System.getProperty("file.separator")+currentProject+".pseuco");
}
});
popupMenu.add(popUpRun);
......@@ -531,7 +583,7 @@ public class GUI extends JFrame {
popUpDelete.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String file = Start.workspace+"/"+(String) list.getSelectedValue()+".pseuco";
String file = Start.workspace+System.getProperty("file.separator")+(String) list.getSelectedValue()+".pseuco";
if (JOptionPane.showConfirmDialog(null, "Do you really want to delete "+file+"?", "Delete", JOptionPane.YES_NO_CANCEL_OPTION) == JOptionPane.YES_OPTION) {
File f = new File (file);
if (f.exists() || f.canWrite()) {
......@@ -626,7 +678,7 @@ public class GUI extends JFrame {
@Override
public void run() {
long usedmemory = (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024 / 1024;
threadCount.setText(String.format("Currently running threads: %d | Used memory: %dMB",Pseuco.getActiveThreadCount(),usedmemory));
threadCount.setText(String.format("Currently running agents: %d | Used memory: %dMB",Pseuco.getActiveThreadCount(),usedmemory));
}
};
while (true) {
......@@ -672,28 +724,15 @@ public class GUI extends JFrame {
* @param path
*/
private void savePseuCo(String path) {
String in = input.getText().replaceAll("\\s", ""), tmp = "", line;
try {
if (!path.endsWith(".pseuco"))
path += ".pseuco";
BufferedReader reader = new BufferedReader(new FileReader(path));
while ((line = reader.readLine()) != null)
tmp += line;
reader.close();
tmp = tmp.replaceAll("\\s", "");
BufferedWriter writer = new BufferedWriter(new FileWriter(path));
writer.write(input.getText());
writer.close();
} catch (IOException e1) {
if (Start.debug) e1.printStackTrace();
} finally {
if (!in.equals(tmp)) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(path));
writer.write(input.getText());
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
......@@ -703,7 +742,7 @@ public class GUI extends JFrame {
*/
private void loadExample() {
try {
BufferedReader reader = new BufferedReader(new FileReader(Start.workspace+"/exampleCount_1.pseuco"));
BufferedReader reader = new BufferedReader(new FileReader(Start.workspace+System.getProperty("file.separator")+"exampleCount_1.pseuco"));
String line;
while ((line=reader.readLine())!=null)
input.getDocument().insertString(input.getDocument().getLength(), line+"\n", null);
......@@ -712,7 +751,7 @@ public class GUI extends JFrame {
list.setSelectedValue(currentProject, true);
setTitle("PseuCo IDE "+Start.version+" - "+currentProject);
} catch (IOException | BadLocationException e2) {
if (Start.debug) e2.printStackTrace();
//if (Start.debug) e2.printStackTrace();
}
}
......@@ -726,4 +765,36 @@ public class GUI extends JFrame {
return currentProject;
}
private class MyDispatcher implements KeyEventDispatcher {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getID() == KeyEvent.KEY_PRESSED && e.isControlDown()) {
if (e.getKeyCode() == KeyEvent.VK_PLUS || e.getKeyCode() == KeyEvent.VK_ADD) {
changeFontSize(1, false);
}
else if (e.getKeyCode() == KeyEvent.VK_MINUS || e.getKeyCode() == KeyEvent.VK_SUBTRACT) {
changeFontSize(-1, false);
}
else if (e.getKeyCode() == KeyEvent.VK_0 || e.getKeyCode() == KeyEvent.VK_NUMPAD0) {
changeFontSize(12, true);
}
}
return false;
}
}
/**
* Checks if the current project exists.
* If not, it shows a warning to the user.
* @return true if the current project has been saved.
*/
protected boolean checkCurrentProject() {
if (! currentProject.isEmpty()) return true;
JOptionPane.showMessageDialog(this, "You have to save your file first, before you can compile it.", "Error", JOptionPane.INFORMATION_MESSAGE);
return false;
}
}
\ No newline at end of file
......@@ -50,11 +50,12 @@ public class HelpDialog extends JDialog{
JLabel icon = new JLabel(new ImageIcon(getClass().getClassLoader().getResource("resources/logo_help.png")));
icon.setPreferredSize(new Dimension(600,212));
JLabel text1 = new JLabel("<html>This program is designed to learn about concurrent programming using PseuCo,"
+" a language based on Java designed by Lisa Detzler, Sebastian Biewer and Janis Sprenger.<br>"
+"The GUI was designed by Markus Bauer and Marc Jose.<br>"
JLabel text1 = new JLabel("<html>IDE for PseuCo, a programming language for concurrent programming. It's syntax is a kind of"
+" stripped-down Java with some inspiration coming from Google Go.<br>"
+"The IDE was created for the\"Nebenlufige Programmierung\"-lecture held by Holger"
+" Hermanns and Christian Eisentraut at Saarland University in summer 2013.<br>"
+"If you have any problems concerning the compiler please contact:</html>");
text1.setPreferredSize(new Dimension(401,90));
text1.setPreferredSize(new Dimension(401,110));
JLabel mail1 = getMailLabel("Lisa Detzler", "s9lidetz@stud.uni-saarland.de");
mail1.setPreferredSize(new Dimension(401,20));
JLabel text2 = new JLabel("Any problems with the GUI should be reported to:");
......@@ -113,7 +114,7 @@ public class HelpDialog extends JDialog{
JPanel info = new JPanel();
info.setLayout(new BorderLayout());
info.add(new JLabel("IDE-Version: "+Start.version+" Compiler-Version: "+MainCodeGen.version), BorderLayout.SOUTH);
info.setPreferredSize(new Dimension(570,60));
info.setPreferredSize(new Dimension(570,50));
add(info);
}
......
......@@ -41,12 +41,6 @@ public class Start {
public void run() {
try {
if (!lock.isLocked()) {
/*for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}*/
setLookAndFeel();
if (loadConfig())
new WorkspaceDialog();
......
......@@ -17,9 +17,15 @@ public aspect bughunter01 {
//Additional error displaying - this shows you internal compiler errors
//catches: public static void handleExceptions(Throwable e)
/*pointcut err(Throwable t) : call(void main.PseuCoCo.handleExceptions(Throwable, ..)) && args(t, ..);
/*
pointcut err(Throwable t) : call(void main.PseuCoCo.handleExceptions(..)) && args(t, ..);
before(Throwable t) : err(t){
System.err.println("DETECTED AN EXCEPTION: ");
t.printStackTrace();
}*/
} // */
/*
before() : call(* tree.PseuCoParser.main(..)) && within(main.PseuCoCo){
codeGen.MainCodeGen.shortOutputs = false;
} // */
}
......@@ -57,7 +57,7 @@ public class DebuggerFrame extends JFrame {
frame.debugger.closeFrame();
}
});
setBounds(30, 100, 720, 500);
setBounds(30, 100, 720, 520);
setMinimumSize(new Dimension(520, 220));
contentPane = new JPanel();
//contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
......@@ -170,7 +170,7 @@ public class DebuggerFrame extends JFrame {
private static final long serialVersionUID = 1L;
public StopAllAction(){
super("", ResourceLoader.loadIcon("stopbtnbig.png"));
super("", ResourceLoader.loadIcon("stop.png"));
putValue(Action.SHORT_DESCRIPTION, "Stops all agents");
}
......@@ -189,7 +189,7 @@ public class DebuggerFrame extends JFrame {
private static final long serialVersionUID = 1L;
public RestartAction(){
super("", ResourceLoader.loadIcon("restartbtnbig.png"));
super("", ResourceLoader.loadIcon("run.png"));
putValue(Action.SHORT_DESCRIPTION, "Restarts the current program");
}
......
......@@ -118,6 +118,17 @@ public class DebuggerHandler {
return frame;
}
private Runnable makeframe = new Runnable() {
@Override
public void run() {
frame = new DebuggerFrame(debuggerhandler);
frame.setWatchingEnabled(!threads.isEmpty());
for (Entry<Thread, ManagedThreadPane> e: threads.entrySet()){
frame.addManagedThreadPane(e.getValue());
}
}
};
/**
* Creates the debugger frame, if it doesn't exist.
* Might be call from EDT or not.
......@@ -125,22 +136,15 @@ public class DebuggerHandler {
public synchronized void makeFrame(){
if (frame != null) return;
if (SwingUtilities.isEventDispatchThread()){
frame = new DebuggerFrame(debuggerhandler);
frame.setWatchingEnabled(!threads.isEmpty());
return;
}
try {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
frame = new DebuggerFrame(debuggerhandler);
frame.setWatchingEnabled(!threads.isEmpty());
}
});
} catch (InvocationTargetException e) {
e.printStackTrace(Output.err);
} catch (InterruptedException e) {
e.printStackTrace(Output.err);
makeframe.run();
}else{
try {
SwingUtilities.invokeAndWait(makeframe);
} catch (InvocationTargetException e) {
e.printStackTrace(Output.err);
} catch (InterruptedException e) {
e.printStackTrace(Output.err);
}
}
}
......
......@@ -14,17 +14,7 @@ public class DebuggerRefresherThread extends Thread {
private final Map<Thread, ManagedThreadPane> threads;
private final Runnable refresh = new Runnable() {
@Override
public void run() {
for(Entry<Thread, ManagedThreadPane> e: threads.entrySet()){
if (e.getValue().getThreadState() == ThreadState.RUNNING){
e.getValue().refreshState();
e.getValue().refreshCommandCount();
}
}
}
};
private final Runnable refresh;
@Override
public void run(){
......@@ -34,12 +24,25 @@ public class DebuggerRefresherThread extends Thread {
Thread.sleep(250);
} catch (InvocationTargetException e) {
e.printStackTrace(Output.err);
} catch (InterruptedException e) {}
} catch (InterruptedException e) {
interrupt();
} catch (NullPointerException e) {}
}
}
public DebuggerRefresherThread(Map<Thread, ManagedThreadPane> threads) {
this.threads = threads;
public DebuggerRefresherThread(Map<Thread, ManagedThreadPane> pThreads) {
this.threads = pThreads;
refresh = new Runnable() {
@Override
public void run() {
for(Entry<Thread, ManagedThreadPane> e: threads.entrySet()){
if (e.getValue().getThreadState() == ThreadState.RUNNING){
e.getValue().refreshState();
e.getValue().refreshCommandCount();
}
}
}
};
setDaemon(true);
}
......
......@@ -198,7 +198,7 @@ public class ManagedThreadPane extends JPanel {
private static final Icon iconResume = ResourceLoader.loadIcon("resumebtn.png");
private static final Icon iconSuspend = ResourceLoader.loadIcon("suspendbtn.png");
private static final Icon iconStop = ResourceLoader.loadIcon("stopbtn.png");
private static final Icon iconStop = ResourceLoader.loadIcon("stop_small.png");
private static final Icon iconStacktrace = ResourceLoader.loadIcon("stackframe.gif");
private static final Icon iconSingleStep = ResourceLoader.loadIcon("stepover.gif");
......
......@@ -46,7 +46,7 @@ public class ClassWatcherFrame extends JFrame implements TreeWillExpandListener
public ClassWatcherFrame(Class<?> mainClass) {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setBounds(750, 100, 400, 600);
setBounds(750, 100, 400, 520);
setTitle("PseuCo IDE - Values");
setIconImage(Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/resources/logo.png")));
......@@ -96,7 +96,7 @@ public class ClassWatcherFrame extends JFrame implements TreeWillExpandListener
}
};