/*******************************************************************************
* Copyright 2015 xWic group (http://www.xwic.de)
*
* Licensed under the Apache License, Version 2.0 (the "License").
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*******************************************************************************/
package de.jwic.demo.advanced;
import de.jwic.async.IProcessListener;
import de.jwic.async.ProcessEvent;
import de.jwic.async.ProcessInfo;
import de.jwic.base.ControlContainer;
import de.jwic.base.IControlContainer;
import de.jwic.controls.Button;
import de.jwic.controls.CheckBox;
import de.jwic.events.SelectionEvent;
import de.jwic.events.SelectionListener;
import de.jwic.events.ValueChangedEvent;
import de.jwic.events.ValueChangedListener;
/**
*
* Demonstrates the usage of the ButtonControl.
*
* @author Florian Lippisch
* @version $Revision: 1.4 $
*/
public class ProcessInfoDemo extends ControlContainer {
private Thread myBackgroundThread = null;
private ProcessInfo processInfo;
/**
* Constructor.
* @param container
*/
public ProcessInfoDemo(IControlContainer container) {
super(container);
processInfo = new ProcessInfo(this, "processInfo");
processInfo.setShowPercentage(true);
processInfo.setShowValues(true);
//processInfo.setCompactView(true);
processInfo.setWidth(600);
Button btStart = new Button(this, "btStart");
btStart.setTitle("Start Process");
btStart.addSelectionListener(new SelectionListener() {
@Override
public void objectSelected(SelectionEvent event) {
onProcessStart();
}
});
final CheckBox chkCompactView = new CheckBox(this, "chkCompView");
chkCompactView.setLabel("Compact View");
chkCompactView.addValueChangedListener(new ValueChangedListener() {
@Override
public void valueChanged(ValueChangedEvent event) {
processInfo.setCompactView(chkCompactView.isChecked());
}
});
final CheckBox chkShowPerc = new CheckBox(this, "chkShowPerc");
chkShowPerc.setLabel("Show Percentage");
chkShowPerc.setChecked(true);
chkShowPerc.addValueChangedListener(new ValueChangedListener() {
@Override
public void valueChanged(ValueChangedEvent event) {
processInfo.setShowPercentage(chkShowPerc.isChecked());
}
});
final CheckBox chkShowValues = new CheckBox(this, "chkShowValues");
chkShowValues.setLabel("Show Values");
chkShowValues.setChecked(true);
chkShowValues.addValueChangedListener(new ValueChangedListener() {
@Override
public void valueChanged(ValueChangedEvent event) {
processInfo.setShowValues(chkShowValues.isChecked());
}
});
}
/**
*
*/
protected void onProcessStart() {
if (myBackgroundThread == null || !myBackgroundThread.isAlive()) {
DemoBackgroundProcess dbp = new DemoBackgroundProcess();
processInfo.setProgressMonitor(dbp.getMonitor());
dbp.addProcessListener(new IProcessListener() {
@Override
public void processFinished(ProcessEvent e) {
processInfo.globalRefresh();
processInfo.stopRefresh();
getSessionContext().notifyMessage("And the result was: " + e.getProcess().getResult());
}
});
myBackgroundThread = new Thread(dbp);
myBackgroundThread.start();
} else {
getSessionContext().notifyMessage("A background process is already running..", "warning");
}
}
}