diff -r f58e426ca958 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Mar 10 16:30:44 2014 -0400 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Mar 11 14:25:28 2014 +0100 @@ -17,6 +17,7 @@ ButDone=Done ButShowDetails=Show Details ButHideDetails=Hide Details +ButClean=Clean all CertWarnRunTip=Trust this applet and run with full permissions CertWarnSandboxTip=Do not trust this applet and run with restricted permissions diff -r f58e426ca958 netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPane.java --- a/netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPane.java Mon Mar 10 16:30:44 2014 -0400 +++ b/netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPane.java Tue Mar 11 14:25:28 2014 +0100 @@ -33,6 +33,14 @@ @Override public synchronized void update(Observable o, Object arg) { + boolean force = false; + if ( arg!= null && arg instanceof Boolean && ((Boolean)arg).booleanValue()) { + force = true; + } + if (force){ + refreshPane(); + return; + } if (!autorefresh.isSelected()) { statistics.setText(model.createStatisticHint()); return; diff -r f58e426ca958 netx/net/sourceforge/jnlp/util/logging/JavaConsole.java --- a/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Mon Mar 10 16:30:44 2014 -0400 +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Tue Mar 11 14:25:28 2014 +0100 @@ -354,6 +354,19 @@ } }); + JButton cleanButton = new JButton(R("ButClean")); + buttonPanel.add(cleanButton); + cleanButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + synchronized (rawData){ + rawData.clear(); + updateModel(true); + } + } + }); + initialized = true; } @@ -484,10 +497,13 @@ rawData.add(m); updateModel(); } - + private synchronized void updateModel() { + updateModel(null); + } + private synchronized void updateModel(Boolean force) { observable.setChanged(); - observable.notifyObservers(); + observable.notifyObservers(force); }