Mercurial > hg > thermostat-tools-eclipse
view com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/editor/ExtensionsMasterDetailsBlock.java @ 99:7484f4e4f587
Fix dirty states in master blocks
Use a SectionPart to manage dirty states. Notify it when
dirty and let it fix up dirty flag on save automatically.
author | Omair Majid <omajid@redhat.com> |
---|---|
date | Fri, 07 Feb 2014 13:24:10 -0500 |
parents | 1c835942f3c2 |
children |
line wrap: on
line source
package com.redhat.thermostat.tools.eclipse.plugin.editor; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.forms.DetailsPart; import com.redhat.thermostat.tools.eclipse.plugin.Messages; import com.redhat.thermostat.tools.eclipse.plugin.model.Extension; import com.redhat.thermostat.tools.eclipse.plugin.model.Plugin; /** * The master of the "Extensions" page. Shows a list of all extensions. */ public class ExtensionsMasterDetailsBlock extends BaseMasterDetailsBlock { private ExtensionEditPage editPage; public ExtensionsMasterDetailsBlock(ExtensionsPage extensionsPage) { editPage = new ExtensionEditPage(extensionsPage); } public void setModel(Plugin model) { super.setModel(model); editPage.setModel(model); } @Override protected void registerPages(DetailsPart detailsPart) { detailsPart.registerPage(String.class, editPage); } @Override String getSectionTitle() { return Messages.ExtensionsMasterDetailsBlock_title; } @Override String getSectionDescription() { return Messages.ExtensionsMasterDetailsBlock_description; } @Override Object[] getListViewModel() { return model.getExtensionNames().toArray(); } @Override void addButtonSelected(Shell shell) { NewNameDialog dialog = new NewNameDialog(shell); dialog.create(); if (dialog.open() == Window.OK) { Extension newExtension = new Extension(); newExtension.setName(dialog.getName()); model.addExtension(newExtension); sectionPart.markDirty(); } } @Override void removeButtonSelected(Object selectedItem) { if (selectedItem == null) { return; } model.removeExtension((String) selectedItem); sectionPart.markDirty(); }; }