content: // This file is part of AceWiki.
  // Copyright 2008-2013, AceWiki developers.
  // 
  // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU
  // Lesser General Public License as published by the Free Software Foundation, either version 3 of
  // the License, or (at your option) any later version.
  // 
  // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
  // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  // Lesser General Public License for more details.
  // 
  // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If
  // not, see http://www.gnu.org/licenses/.
  
  package ch.uzh.ifi.attempto.echocomp;
  
  import nextapp.echo.app.Alignment;
  import nextapp.echo.app.Column;
  import nextapp.echo.app.Extent;
  import nextapp.echo.app.Font;
  import nextapp.echo.app.Grid;
  import nextapp.echo.app.Insets;
  import nextapp.echo.app.Row;
  import nextapp.echo.app.WindowPane;
  import nextapp.echo.app.event.ActionEvent;
  import nextapp.echo.app.event.ActionListener;
  
  public class TextFieldWindow extends WindowPane implements ActionListener {
  	
  	private static final long serialVersionUID = 4671851648820077010L;
  
  	private ActionListener actionListener;
  	
  	private TextField textField;
  	
  	public TextFieldWindow(String title, String label, ActionListener actionListener) {
  		this.actionListener = actionListener;
  		
  		setModal(true);
  		setTitle(title);
  		setTitleFont(new Font(Style.fontTypeface, Font.ITALIC, new Extent(13)));
  		setResizable(false);
  		setTitleBackground(Style.windowTitleBackground);
  		setStyleName("Default");
  
  		Grid grid = new Grid(1);
  		grid.setInsets(new Insets(10, 10, 0, 0));
  		grid.setColumnWidth(0, new Extent(400));
  		grid.setRowHeight(0, new Extent(90));
  		
  		Column mainColumn = new Column();
  		mainColumn.setCellSpacing(new Extent(10));
  		grid.add(mainColumn);
  		
  		mainColumn.add(new SolidLabel(label));
  		textField = new TextField();
  		textField.setFont(new Font(Style.fontTypeface, Font.PLAIN, new Extent(13)));
  		textField.setWidth(new Extent(370));
  		mainColumn.add(textField);
  		
  		Row buttonBar = new Row();
  		buttonBar.setAlignment(new Alignment(Alignment.CENTER, Alignment.CENTER));
  		buttonBar.setInsets(new Insets(0, 0, 10, 0));
  		buttonBar.setCellSpacing(new Extent(5));
  		GeneralButton okButton = new GeneralButton("general_action_ok", this, 100);
  		okButton.setActionCommand("OK");
  		buttonBar.add(okButton);
  		GeneralButton cancelButton = new GeneralButton("general_action_cancel", this, 100);
  		cancelButton.setActionCommand("Cancel");
  		buttonBar.add(cancelButton);
  		grid.add(buttonBar);
  		
  		add(grid);
  
  		setWidth(new Extent(420));
  		setHeight(new Extent(180));
  
  		EchoThread.getActiveApplication().setFocusedComponent(textField);
  	}
  	
  	public String getText() {
  		return textField.getText();
  	}
  	
  	public void setText(String text) {
  		textField.setText(text);
  	}
  	
  	public void actionPerformed(ActionEvent e) {
  		if (actionListener != null) {
  			actionListener.actionPerformed(new ActionEvent(this, e.getActionCommand()));
  		}
  		setVisible(false);
  		dispose();
  	}
  
  }
  