/* * Copyright (c) 2006 Manuel Traut and Volker Dahnke * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: Manuel Traut and Volker Dahnke */ package YalpClients.SwtClient.GUI; import YalpClients.SwtClient.Model; import YalpInterfaces.AccessRights; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.*; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /* * Class StartDialog * * * * @author Volker Dahnke / Manuel Traut * * @version 1 02-04-2006
*/ public class StartDialog extends Composite { { //Register as a resource user - SWTResourceManager will //handle the obtaining and disposing of resources SWTResourceManager.registerResourceUser(this); } private Display display; private CLabel cLabel1; private CLabel LogoLabel; private Model model; private Composite parent; private Composite composite; private CLabel logonLable; private Button ok; private Text passwd; private Text username; private CLabel passwdLable; private CLabel usernameLable; public StartDialog(Composite parent,Model model, int style) { super(parent, style); this.parent=parent; this.model=model; this.display=Display.getDefault(); initStartDialog(); } private void initStartDialog(){ GridLayout thisLayout = new GridLayout(); thisLayout.makeColumnsEqualWidth = true; this.setLayout(thisLayout); this.setSize(300,150); Listener listener =new Listener() { public void handleEvent(org.eclipse.swt.widgets.Event evt) { if (evt.character==SWT.CR){ OkPressed(); } } }; addListener(SWT.KeyDown,listener); { composite = new Composite(this, SWT.NONE); FormLayout compositeLayout = new FormLayout(); composite.setLayout(compositeLayout); GridData compositeLData = new GridData(); compositeLData.widthHint = 287; compositeLData.heightHint = 140; composite.setLayoutData(compositeLData); composite.setVisible(true); composite.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent evt) { if (evt.character==SWT.CR){ OkPressed(); } } }); { cLabel1 = new CLabel(composite, SWT.NONE); FormData cLabel1LData = new FormData(); cLabel1LData.width = 120; cLabel1LData.height = 20; cLabel1LData.left = new FormAttachment(0, 1000, 93); cLabel1LData.top = new FormAttachment(0, 1000, 40); cLabel1.setLayoutData(cLabel1LData); Color col =display.getSystemColor(SWT.COLOR_RED); cLabel1.setForeground(col); cLabel1.setFont(SWTResourceManager.getFont("Times", 10, 1, false, false)); } { LogoLabel = new CLabel(composite, SWT.NONE); FormData LogoLabelLData = new FormData(); LogoLabelLData.width = 70; LogoLabelLData.height = 42; LogoLabelLData.left = new FormAttachment(0, 1000, 77); LogoLabelLData.top = new FormAttachment(0, 1000, 0); LogoLabelLData.right = new FormAttachment(1000, 1000, -140); LogoLabelLData.bottom = new FormAttachment(1000, 1000, -98); LogoLabel.setLayoutData(LogoLabelLData); LogoLabel.setImage(new Image(this.getDisplay(),"img/yalpV2_mittel.gif")); } { logonLable = new CLabel(composite, SWT.BEGINNING); logonLable.setText("Login"); FormData logonLableLData = new FormData(); logonLableLData.width = 70; logonLableLData.height = 28; logonLableLData.left = new FormAttachment(0, 1000, 147); logonLableLData.top = new FormAttachment(0, 1000, 5); logonLable.setLayoutData(logonLableLData); logonLable.setFont(SWTResourceManager.getFont("Times", 14, 1, false, false)); } { username = new Text(composite, SWT.NONE); FormData usernameLData = new FormData(); usernameLData.width = 117; usernameLData.height = 15; usernameLData.left = new FormAttachment(0, 1000, 120); usernameLData.top = new FormAttachment(0, 1000, 65); username.setLayoutData(usernameLData); username.setFocus(); username.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent evt) { if (evt.character==SWT.CR){ OkPressed(); } } }); } { passwd = new Text(composite, SWT.PASSWORD); FormData passwdLData = new FormData(); passwdLData.width = 117; passwdLData.height = 15; passwdLData.left = new FormAttachment(0, 1000, 120); passwdLData.top = new FormAttachment(0, 1000, 88); passwd.setLayoutData(passwdLData); passwd.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent evt) { if (evt.character==SWT.CR){ OkPressed(); } } }); } { ok = new Button(composite, SWT.PUSH | SWT.CENTER); ok.setText("OK"); FormData okLData = new FormData(); okLData.width = 65; okLData.height = 21; okLData.left = new FormAttachment(0, 1000, 110); okLData.top = new FormAttachment(0, 1000, 115); ok.setLayoutData(okLData); ok.setFont(SWTResourceManager.getFont("Times", 10, 1, false, false)); ok.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent evt) { OkPressed(); } }); } { passwdLable = new CLabel(composite, SWT.NONE); passwdLable.setText("Password:"); FormData passwdLableLData = new FormData(); passwdLableLData.width = 70; passwdLableLData.height = 20; passwdLableLData.left = new FormAttachment(0, 1000, 35); passwdLableLData.top = new FormAttachment(0, 1000, 83); passwdLable.setLayoutData(passwdLableLData); passwdLable.setFont(SWTResourceManager.getFont("Times", 10, 0, false, false)); } { usernameLable = new CLabel(composite, SWT.NONE); usernameLable.setText("Username:"); FormData usernameLableLData = new FormData(); usernameLableLData.width = 70; usernameLableLData.height = 20; usernameLableLData.left = new FormAttachment(0, 1000, 35); usernameLableLData.top = new FormAttachment(0, 1000, 60); usernameLable.setLayoutData(usernameLableLData); usernameLable.setFont(SWTResourceManager.getFont("Times", 10, 0, false, false)); } } this.layout(); } private void OkPressed(){ AccessRights kind; kind = model.userVerify(username.getText(), passwd.getText()); if (kind.value() == AccessRights._NO_YALP_SERVER ) { cLabel1.setText("Server offline"); } else if (kind.value() == AccessRights._DENY ){ cLabel1.setText("Access Denied"); username.setText(""); passwd.setText(""); username.setFocus(); } else { display.close(); InitGUI gui = new InitGUI(model, kind); } } public void show(){ ((Shell)this.parent).setImage(new Image(display,"img/yalpV2_klein.gif")); ((Shell)this.parent).setText("yalp"); Point size = this.getSize(); java.awt.Dimension screen = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); Rectangle shellBounds = this.parent.computeTrim((screen.width-size.x)/2,(screen.height-size.y)/2,size.x,size.y); this.parent.setLayout(new FillLayout()); this.parent.layout(); this.parent.setBounds(shellBounds); ((Shell)this.parent).open(); while (!this.parent.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } }