/******************************************************************************* | |
* Copyright (C) 2018 Fondazione Bruno Kessler. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v2.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/epl-v20.html | |
* | |
* Contributors: | |
* Luca Cristoforetti - initial API and implementation | |
* Pietro Braghieri - original code | |
******************************************************************************/ | |
package org.polarsys.chess.diagramsCreator.dialogs; | |
import org.eclipse.jface.dialogs.Dialog; | |
import org.eclipse.jface.dialogs.IDialogConstants; | |
import org.eclipse.swt.graphics.Point; | |
import org.eclipse.swt.widgets.Composite; | |
import org.eclipse.swt.widgets.Control; | |
import org.eclipse.swt.widgets.Label; | |
import org.eclipse.swt.widgets.Shell; | |
import org.eclipse.swt.SWT; | |
import org.eclipse.swt.layout.GridLayout; | |
import org.eclipse.swt.widgets.Button; | |
import org.eclipse.swt.widgets.Combo; | |
/** | |
* This class dispays a dialog to set some parameters for the IBD creation. | |
* No more used since CSS. | |
* @author cristofo | |
* | |
*/ | |
public class IBDCreatorDialog extends Dialog { | |
private static final String TITLE = "IBD diagram parameters"; | |
private Button btnPortLexicographicallyOrder; | |
private boolean portLexicographicallyOrder; | |
private Button btnShowFlowPorts; | |
private boolean showFlowPorts; | |
private Button btnShowStereotypes; | |
private boolean showStereotypes; | |
private Button btnShowConnectorNames; | |
private boolean showConnectorNames; | |
private Combo combo; | |
private boolean rectilinearRouting; | |
private boolean goAhead = false; | |
/** | |
* Creates the dialog. | |
* @param parentShell the parent shell | |
* @param blocking indicates if the dialog should be modal | |
*/ | |
public IBDCreatorDialog(Shell parentShell, boolean blocking) { | |
super(parentShell); | |
setShellStyle(SWT.TITLE); | |
// setShellStyle(SWT.CLOSE | SWT.MODELESS| SWT.BORDER | SWT.TITLE); | |
setBlockOnOpen(blocking); | |
} | |
@Override | |
protected void configureShell(Shell newShell) { | |
super.configureShell(newShell); | |
newShell.setText(TITLE); | |
} | |
@Override | |
protected void okPressed() { | |
portLexicographicallyOrder = btnPortLexicographicallyOrder.getSelection(); | |
showFlowPorts = btnShowFlowPorts.getSelection(); | |
showStereotypes = btnShowStereotypes.getSelection(); | |
showConnectorNames = btnShowConnectorNames.getSelection(); | |
rectilinearRouting = (combo.getSelectionIndex() == 0); | |
goAhead = true; | |
super.okPressed(); | |
} | |
/** | |
* Creates contents of the dialog. | |
* @param parent | |
*/ | |
@Override | |
protected Control createDialogArea(Composite parent) { | |
parent.setToolTipText(""); | |
Composite container = (Composite) super.createDialogArea(parent); | |
GridLayout gridLayout = (GridLayout) container.getLayout(); | |
gridLayout.numColumns = 2; | |
gridLayout.makeColumnsEqualWidth = true; | |
btnPortLexicographicallyOrder = new Button(container, SWT.CHECK); | |
btnPortLexicographicallyOrder.setSelection(false); | |
btnPortLexicographicallyOrder.setAlignment(SWT.RIGHT); | |
btnPortLexicographicallyOrder.setText("Alphabetical port name ordering"); | |
btnShowFlowPorts = new Button(container, SWT.CHECK); | |
btnShowFlowPorts.setSelection(false); | |
btnShowFlowPorts.setAlignment(SWT.RIGHT); | |
btnShowFlowPorts.setText("Show <<FlowPort>> labels"); | |
btnShowStereotypes = new Button(container, SWT.CHECK); | |
btnShowStereotypes.setSelection(false); | |
btnShowStereotypes.setAlignment(SWT.RIGHT); | |
btnShowStereotypes.setText("Show stereotypes labels"); | |
btnShowConnectorNames = new Button(container, SWT.CHECK); | |
btnShowConnectorNames.setSelection(false); | |
btnShowConnectorNames.setAlignment(SWT.RIGHT); | |
btnShowConnectorNames.setText("Show connectors names"); | |
final Label selectRoutingStyle = new Label(container, SWT.RIGHT); | |
selectRoutingStyle.setText("Select routing style:"); | |
combo = new Combo(container, SWT.DROP_DOWN | SWT.READ_ONLY); | |
combo.setItems(new String [] {"Rectilinear", "Oblique"}); | |
combo.select(0); | |
return container; | |
} | |
/** | |
* Creates contents of the button bar. | |
* @param parent | |
*/ | |
@Override | |
protected void createButtonsForButtonBar(Composite parent) { | |
createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true); | |
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); | |
} | |
/** | |
* Returns the initial size of the dialog. | |
*/ | |
@Override | |
protected Point getInitialSize() { | |
return new Point(485, 230); | |
} | |
/** | |
* Returns true if the user pressed the OK button. | |
* @return | |
*/ | |
public boolean goAhead() { | |
return goAhead; | |
} | |
public boolean getPortLexicographicallyOrder() { | |
return portLexicographicallyOrder; | |
} | |
public boolean getShowConnectors() { | |
return showConnectorNames; | |
} | |
public boolean getShowFlowPorts() { | |
return showFlowPorts; | |
} | |
public boolean getShowStereotypes() { | |
return showStereotypes; | |
} | |
public boolean getRectilinearRouting() { | |
return rectilinearRouting; | |
} | |
} |