
io.github.albertus82.jface.preference.page.IPageDefinition Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jface-utils Show documentation
Show all versions of jface-utils Show documentation
Java SWT/JFace Utility Library including a Preferences Framework, Lightweight HTTP Server and macOS support.
package io.github.albertus82.jface.preference.page;
import org.eclipse.jface.resource.ImageDescriptor;
/**
*
* This is a very simple example of enum that implements
* {@link io.github.albertus82.jface.preference.page.IPageDefinition
* IPageDefinition}:
*
*
*
* public enum MyPageDefinition implements IPageDefinition {
*
* TEXT(new PageDefinitionDetailsBuilder().nodeId("text").label("Text").build()),
* TEXT_NUMERIC(new PageDefinitionDetailsBuilder().nodeId("text.numeric").parent(TEXT).label("Numeric").build()),
* COMBO(new PageDefinitionDetailsBuilder().nodeId("combo").label("Combo").build()),
* COMBO_NUMERIC(new PageDefinitionDetailsBuilder().nodeId("combo.numeric").parent(COMBO).label("Numeric").build()),
* PAGE(new PageDefinitionDetailsBuilder().nodeId("page").label("Page").build()),
* VARIOUS(new PageDefinitionDetailsBuilder().nodeId("various").label("Various").build());
*
* private PageDefinitionDetails pageDefinitionDetails;
*
* MyPageDefinition() {
* this(new PageDefinitionDetailsBuilder().build());
* }
*
* MyPageDefinition(PageDefinitionDetails pageDefinitionDetails) {
* this.pageDefinitionDetails = pageDefinitionDetails;
* }
*
* @Override
* public String getNodeId() {
* return pageDefinitionDetails.getNodeId();
* }
*
* @Override
* public String getLabel() {
* return pageDefinitionDetails.getLabel().get();
* }
*
* @Override
* public Class<? extends BasePreferencePage> getPageClass() {
* return pageDefinitionDetails.getPageClass();
* }
*
* @Override
* public IPageDefinition getParent() {
* return pageDefinitionDetails.getParent();
* }
*
* @Override
* public ImageDescriptor getImage() {
* return pageDefinitionDetails.getImage();
* }
* }
*
*
*
* You can surely improve this code, for example introducing localization and
* autodetermining {@code nodeId} values using the enum names. This example
* makes use of
* {@link io.github.albertus82.jface.preference.page.PageDefinitionDetails
* PageDefinitionDetails} helper class and its builder.
*
*/
public interface IPageDefinition {
String getNodeId();
String getLabel();
Class extends BasePreferencePage> getPageClass();
ImageDescriptor getImage();
IPageDefinition getParent();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy