/* * Copyright 2013 eWidgetFX. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.ewidgetfx.core; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.scene.layout.Pane; import javafx.stage.Stage; /** * * @author Carl Dea <carl.dea@gmail.com> * @since 1.0 */ public abstract class DefaultWidget extends Pane implements Widget { private final StringProperty name = new SimpleStringProperty(); private final StringProperty version = new SimpleStringProperty(); private String description; private String vendor; private String vendorUrl; private String vendorEmail; private DECORATION decoration; private final WidgetState widgetState = new WidgetState(); private LaunchInfo launchInfo; private final ObjectProperty<WidgetIcon> widgetIcon = new SimpleObjectProperty<>(); private Stage parentStage; public DefaultWidget() { } public DefaultWidget(LaunchInfo launchInfo, String name, String version, WidgetIcon widgetIcon) { this.name.setValue(name); this.version.setValue(version); this.launchInfo = launchInfo; this.widgetIcon.setValue(widgetIcon); } @Override public String getName() { if (name.get() == null) { name.setValue(getClass().getName()); } return name.get(); } @Override public void setName(String name) { this.name.setValue(name); } @Override public StringProperty nameProperty() { return name; } @Override public String getVersion() { return version.get(); } @Override public void setVersion(String version) { this.version.setValue(version); } @Override public StringProperty versionProperty() { return version; } @Override public DECORATION getDecoration() { return decoration; } @Override public void setDecoration(DECORATION decoration) { this.decoration = decoration; } @Override public String getDescription() { return description; } @Override public void setDescription(String descr) { this.description = descr; } @Override public String getVendor() { return vendor; } @Override public void setVendor(String vendor) { this.vendor = vendor; } @Override public String getVendorUrl() { return vendorUrl; } @Override public void setVendorUrl(String vendorUrl) { this.vendorUrl = vendorUrl; } @Override public String getVendorEmail() { return vendorEmail; } @Override public void setVendorEmail(String vendorEmail) { this.vendorEmail = vendorEmail; } @Override public LaunchInfo getLaunchInfo() { return launchInfo; } @Override public void setLaunchInfo(LaunchInfo launchInfo) { this.launchInfo = launchInfo; } @Override public WidgetIcon getWidgetIcon() { return widgetIconProperty().get(); } @Override public void setWidgetIcon(WidgetIcon widgetIcon) { this.widgetIcon.setValue(widgetIcon); } @Override public ObjectProperty<WidgetIcon> widgetIconProperty() { return widgetIcon; } @Override public Pane getAsNode() { return this; } @Override public Stage getParentStage() { return parentStage; } @Override public void setParentStage(Stage stage) { parentStage = stage; } @Override public WidgetState getWidgetState() { return widgetState; } @Override public void startBackground() { } @Override public void pause() { System.out.println("pausing widget"); } @Override public void resume() { System.out.println("resuming widget"); } @Override public void stopBackground() { } }