public void onChange(Widget widget)
{
int index = listBox.getSelectedIndex();
if(index!=-1)
{
ProcessInstanceRef item = listBox.getItem(index);
// update details
controller.handleEvent(
new Event(UpdateInstanceDetailAction.ID,
new InstanceEvent(currentDefinition, item)
)
);
}
}
});
// toolbar
final LayoutPanel toolBox = new LayoutPanel();
toolBox.setPadding(0);
toolBox.setWidgetSpacing(5);
final ToolBar toolBar = new ToolBar();
toolBar.add(
new ToolButton("Refresh", new ClickListener() {
public void onClick(Widget sender) {
controller.handleEvent(
new Event(
UpdateInstancesAction.ID,
getCurrentDefinition()
)
);
}
}
)
);
toolBar.addSeparator();
toolBar.add(
new ToolButton("Start", new ClickListener()
{
public void onClick(Widget sender)
{
MessageBox.confirm("Start new execution",
"Do you want to start a new execution of this process?",
new MessageBox.ConfirmationCallback() {
public void onResult(boolean doIt)
{
if(doIt)
{
String url = getCurrentDefinition().getFormUrl();
boolean hasForm = (url !=null && !url.equals(""));
if(hasForm)
{
createProcessFormWindow(getCurrentDefinition());
}
else
{
controller.handleEvent(
new Event(
StartNewInstanceAction.ID,
getCurrentDefinition()
)
);
}
}
}
});
}
}
)
);
toolBar.addSeparator();
toolBar.add(
new ToolButton("Terminate", new ClickListener()
{
public void onClick(Widget sender)
{
if(getSelection()!=null)
{
MessageBox.confirm("Terminate instance",
"Terminating this instance will stop further execution.",
new MessageBox.ConfirmationCallback() {
public void onResult(boolean doIt)
{
if(doIt)
{
ProcessInstanceRef selection = getSelection();
selection.setState(ProcessInstanceRef.STATE.ENDED);
selection.setEndResult(ProcessInstanceRef.RESULT.OBSOLETE);
controller.handleEvent(
new Event(
StateChangeAction.ID,
selection
)
);
}
}
});
}
else
{
MessageBox.alert("Missing selection", "Please select an instance");
}
}
}
)
);
toolBar.addSeparator();
toolBar.add(
new ToolButton("Delete", new ClickListener()
{
public void onClick(Widget sender)
{
if(getSelection()!=null)
{
MessageBox.confirm("Delete instance",
"Deleting this instance will remove any history information and associated tasks as well.",
new MessageBox.ConfirmationCallback() {
public void onResult(boolean doIt)
{
if(doIt)
{
ProcessInstanceRef selection = getSelection();
selection.setState(ProcessInstanceRef.STATE.ENDED);
controller.handleEvent(
new Event(
DeleteInstanceAction.ID,
selection