package org.nightlabs.jfire.trade.ui.repository.editor; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.editor.FormPage; 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.RestorableSectionPart; import org.nightlabs.base.ui.language.I18nTextEditorTable; import org.nightlabs.base.ui.language.II18nTextEditor; import org.nightlabs.base.ui.language.ModificationFinishedEvent; import org.nightlabs.base.ui.language.ModificationFinishedListener; import org.nightlabs.base.ui.language.I18nTextEditor.EditMode; import org.nightlabs.jfire.store.Repository; import org.nightlabs.jfire.trade.ui.resource.Messages; class RepositoryGeneralSection extends RestorableSectionPart { private Repository repository; private II18nTextEditor repositoryName; public RepositoryGeneralSection(FormPage page, Composite parent) { super(parent, page.getEditor().getToolkit(), ExpandableComposite.EXPANDED | ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE); getSection().setText(Messages.getString("org.nightlabs.jfire.trade.ui.repository.editor.RepositoryGeneralSection.text")); //$NON-NLS-1$ getSection().setLayoutData(new GridData(GridData.FILL_BOTH)); getSection().setLayout(new GridLayout()); XComposite client = new XComposite(getSection(), SWT.NONE, LayoutMode.TIGHT_WRAPPER); repositoryName = new I18nTextEditorTable(client, Messages.getString("org.nightlabs.jfire.trade.ui.repository.editor.RepositoryGeneralSection.repositoryNameEditor.title")); //$NON-NLS-1$ repositoryName.addModificationFinishedListener(new ModificationFinishedListener() { public void modificationFinished(ModificationFinishedEvent event) { markDirty(); } }); getSection().setClient(client); } /** * This method is called on the UI thread and passes the working-copy of the current <code>Repository</code> * to this section. All sections within the same page share this same {@link Repository} instance. * * @param repository the working copy */ public void setRepository(Repository repository) { this.repository = repository; repositoryName.setI18nText(repository.getName(), EditMode.DIRECT); } }