/**
*
*/
package org.nightlabs.jfire.reporting.admin.ui.category.editor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.editor.IFormPage;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.composite.XComposite.LayoutMode;
import org.nightlabs.base.ui.editor.ToolBarSectionPart;
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.reporting.admin.ui.resource.Messages;
import org.nightlabs.jfire.reporting.layout.ReportRegistryItem;
/**
* Section that shows and edits name description of a {@link ReportRegistryItem}.
*
* @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de -->
*
*/
public class ReportDetailSection extends ToolBarSectionPart {
private final I18nTextEditor name;
private final I18nTextEditorMultiLine description;
/**
* @param page
* @param parent
* @param style
* @param title
*/
public ReportDetailSection(IFormPage page, Composite parent) {
super(page, parent, ExpandableComposite.TITLE_BAR | ExpandableComposite.EXPANDED, Messages.getString("org.nightlabs.jfire.reporting.admin.ui.category.editor.ReportDetailSection.section.name")); //$NON-NLS-1$
getSection().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
getSection().setLayout(new GridLayout());
XComposite client = new XComposite(getSection(), SWT.NONE, LayoutMode.TIGHT_WRAPPER);
client.getGridLayout().numColumns = 1;
getSection().setClient(client);
name = new I18nTextEditor(client, Messages.getString("org.nightlabs.jfire.reporting.admin.ui.category.editor.ReportDetailSection.label.name")); //$NON-NLS-1$
name.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent arg0) {
markDirty();
}
});
description = new I18nTextEditorMultiLine(client, name.getLanguageChooser(), Messages.getString("org.nightlabs.jfire.reporting.admin.ui.category.editor.ReportDetailSection.label.description")); //$NON-NLS-1$
description.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent arg0) {
markDirty();
}
});
description.setLayoutData(new GridData(GridData.FILL_BOTH));
}
public void setReportRegistryItem(ReportRegistryItem reportRegistryItem) {
name.setI18nText(reportRegistryItem.getName(), EditMode.BUFFERED);
description.setI18nText(reportRegistryItem.getDescription(), EditMode.BUFFERED);
}
@Override
public void commit(boolean onSave) {
super.commit(onSave);
name.copyToOriginal();
description.copyToOriginal();
}
}