package org.panlab.software.fstoolkit.plc.preferences;
import org.eclipse.jface.dialogs.StatusDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
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.widgets.Text;
public class EditPLCAccountDialog extends StatusDialog {
protected PLCAccount account;
private Text plcNameText;
private Text urlApiText;
private Text usernameText;
private Text passwordText;
private Button enableAccountCkb;
public EditPLCAccountDialog(Shell parent, PLCAccount account, boolean edit) {
super(parent);
this.account = account;
String title= edit
? "Edit PLC account"
: "New PLC account";
setTitle(title);
// TODO Auto-generated constructor stub
}
public PLCAccount getAccount() {
return this.account;
}
@Override
protected Control createDialogArea(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
layout.verticalSpacing = 2;
GridData gd= new GridData(GridData.FILL_BOTH);
gd.horizontalSpan= 2;
gd.widthHint = 400;
container.setLayoutData(gd);
createLabel(container, "");
enableAccountCkb = new Button(container, SWT.CHECK );
enableAccountCkb.setText("Enable this account");
enableAccountCkb.setSelection( account.getEnabledAccount() );
createLabel(container, "PLC name:");
//int descFlags= fIsNameModifiable ? SWT.BORDER : SWT.BORDER | SWT.READ_ONLY;
GridData gdtext= new GridData(GridData.FILL_HORIZONTAL );
gdtext.widthHint = 250;
plcNameText = new Text(container, SWT.BORDER );
plcNameText.setLayoutData(gdtext);
plcNameText.setText(account.getPlcName());
createLabel(container, "URL API (XML RPC):");
//int descFlags= fIsNameModifiable ? SWT.BORDER : SWT.BORDER | SWT.READ_ONLY;
urlApiText = new Text(container, SWT.BORDER );
urlApiText.setLayoutData(gdtext);
urlApiText.setText(account.getUrlapi() );
createLabel(container, "Username:");
//int descFlags= fIsNameModifiable ? SWT.BORDER : SWT.BORDER | SWT.READ_ONLY;
usernameText = new Text(container, SWT.BORDER );
usernameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
usernameText.setText(account.getUsername() );
createLabel(container, "Password:");
//int descFlags= fIsNameModifiable ? SWT.BORDER : SWT.BORDER | SWT.READ_ONLY;
passwordText = new Text(container, SWT.BORDER );
passwordText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
passwordText.setEchoChar('*');
passwordText.setText(account.getPassword() );
return super.createDialogArea(container);
}
private static Label createLabel(Composite parent, String name) {
Label label= new Label(parent, SWT.NULL);
label.setText(name);
//label.setLayoutData(new GridData());
return label;
}
private static Text createText(Composite parent) {
Text text= new Text(parent, SWT.BORDER);
return text;
}
@Override
protected void okPressed() {
account.setPlcName( this.plcNameText.getText() );
account.setUrlapi(this.urlApiText.getText());
account.setUsername(this.usernameText.getText());
account.setPassword(this.passwordText.getText());
account.setEnabledAccount(this.enableAccountCkb.getSelection());
super.okPressed();
}
}