* This method shows busy cursor while layout is runnning.
*/
public final void runLayout()
{
viewer.getControl().getShell().setEnabled(false);
viewer.getControl().getShell().setCursor(new Cursor(null, SWT.CURSOR_WAIT));
//disable higlight and handles
IFigure highlightLayer = ((ChsScalableRootEditPart) viewer.getRootEditPart()).getLayer(
HighlightLayer.HIGHLIGHT_LAYER);
IFigure handleLayer = ((ChsScalableRootEditPart) viewer.getRootEditPart()).getLayer(
LayerConstants.HANDLE_LAYER);
highlightLayer.setVisible(false);
handleLayer.setVisible(false);
boolean isSuccessful;
if (fromChisioModel)
{
isSuccessful = createTopology(rootModel);
}
else
{
isSuccessful = createTopology(V, E);
}
if (isSuccessful)
{
this.layout();
this.transform();
// Propagate geometric changes to v-level objects if we have created
// l-graph objects from chisio model.
if (fromChisioModel)
{
this.update();
}
}
else
{
MessageBox mb = new MessageBox(new Shell(), SWT.OK);
mb.setMessage("Compound structures are not supported by this"
+ " layout style!");
mb.setText(ChisioMain.TOOL_NAME);
mb.open();
}
//enable highlight and handles
highlightLayer.setVisible(true);
handleLayer.setVisible(true);
viewer.getControl().getShell().setCursor(new Cursor(null, SWT.CURSOR_ARROW));
viewer.getControl().getShell().setEnabled(true);
}