package org.nightlabs.jfire.department.admin.ui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.language.I18nTextEditor;
import org.nightlabs.base.ui.language.I18nTextEditorMultiLine;
import org.nightlabs.base.ui.language.I18nTextEditor.EditMode;
import org.nightlabs.jfire.base.login.ui.Login;
import org.nightlabs.jfire.department.Department;
import org.nightlabs.jfire.idgenerator.IDGenerator;
/**
* A composite that contains UIs for adding {@link Department}.
*
* @author Chairat Kongarayawetchakun - chairat[at]nightlabs[dot]de
*/
public class CreateDepartmentComposite
extends XComposite
{
/**
* Contructs a composite used for adding {@link Department}.
*
* @param parent -the parent composite
* @param style - the SWT style flag
*/
public CreateDepartmentComposite(Department newDepartment, Composite parent, int style) {
super(parent, style, LayoutMode.TIGHT_WRAPPER);
this.newDepartment = newDepartment;
if (newDepartment == null)
this.newDepartment = new Department(Login.sharedInstance().getOrganisationID(), IDGenerator.nextID(Department.class));
createComposite();
}
private I18nTextEditor nameText;
private I18nTextEditorMultiLine descriptionText;
private Department newDepartment;
private void createComposite() {
getGridLayout().numColumns = 1;
getGridLayout().makeColumnsEqualWidth = false;
getGridData().grabExcessHorizontalSpace = true;
XComposite mainComposite = new XComposite(this, SWT.NONE,
LayoutMode.TIGHT_WRAPPER);
mainComposite.getGridLayout().numColumns = 4;
XComposite nameAndDescriptionComposite = new XComposite(mainComposite, SWT.NONE);
GridData gridData = new GridData(GridData.FILL_BOTH);
gridData.horizontalSpan = 5;
nameAndDescriptionComposite.setLayoutData(gridData);
Label subjectLabel = new Label(nameAndDescriptionComposite, SWT.WRAP);
subjectLabel.setLayoutData(new GridData());
subjectLabel.setText("Subject");
nameText = new I18nTextEditor(nameAndDescriptionComposite);
nameText.setI18nText(newDepartment.getName(), EditMode.DIRECT);
Label descriptionLabel = new Label(nameAndDescriptionComposite, SWT.WRAP);
descriptionLabel.setLayoutData(new GridData());
descriptionLabel.setText("Description");
descriptionText = new I18nTextEditorMultiLine(nameAndDescriptionComposite, nameText.getLanguageChooser());
descriptionText.setI18nText(newDepartment.getDescription(), EditMode.DIRECT);
}
public Department getCreatingDepartment() {
return newDepartment;
}
}