/* * Scenic View, * Copyright (C) 2012 Jonathan Giles, Ander Ruiz, Amy Fowler * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.fxconnector.details; import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.ContentDisplay; import javafx.scene.control.Labeled; import javafx.scene.control.OverrunStyle; import javafx.scene.text.TextAlignment; import org.fxconnector.StageID; import org.fxconnector.event.FXConnectorEventDispatcher; /** * */ class LabeledDetailPaneInfo extends DetailPaneInfo { LabeledDetailPaneInfo(final FXConnectorEventDispatcher dispatcher, final StageID stageID) { super(dispatcher, stageID, DetailPaneType.LABELED); } Detail textDetail; Detail graphicDetail; Detail contentDisplayDetail; Detail graphicTextGapDetail; Detail alignmentDetail; Detail textAlignmentDetail; Detail textOverrunDetail; Detail wrapTextDetail; Detail underlineDetail; Detail fontDetail; @Override Class<? extends Node> getTargetClass() { return Labeled.class; } @Override public boolean targetMatches(final Object candidate) { return candidate instanceof Labeled; } @Override protected void createDetails() { textDetail = addDetail("text", "text:"); graphicDetail = addDetail("graphic", "graphic:"); graphicTextGapDetail = addDetail("graphicTextGap", "graphicTextGap:"); contentDisplayDetail = addDetail("contentDisplay", "contentDisplay:"); alignmentDetail = addDetail("alignment", "alignment:"); textAlignmentDetail = addDetail("textAlignment", "textAlignment:"); textOverrunDetail = addDetail("textOverrun", "textOverrun:"); wrapTextDetail = addDetail("wrapText", "wrapText:"); underlineDetail = addDetail("underline", "underline:"); fontDetail = addDetail("font", "font:"); } @Override protected void updateDetail(final String propertyName) { final boolean all = propertyName.equals("*") ? true : false; final Labeled labeled = (Labeled) getTarget(); if (all || propertyName.equals("text")) { textDetail.setValue(labeled != null ? "\"" + labeled.getText() + "\"" : "-"); textDetail.setIsDefault(labeled == null || labeled.getText() == null); textDetail.setSimpleProperty(labeled != null ? labeled.textProperty() : null); if (!all) textDetail.updated(); if (!all) return; } if (all || propertyName.equals("font")) { fontDetail.setValue(labeled != null ? labeled.getFont().getName() : "-"); fontDetail.setIsDefault(labeled == null); if (!all) fontDetail.updated(); if (!all) return; } if (all || propertyName.equals("graphic")) { final Node graphic = labeled != null ? labeled.getGraphic() : null; graphicDetail.setValue(graphic != null ? graphic.getClass().getSimpleName() : "-"); graphicDetail.setIsDefault(graphic == null); if (!all) graphicDetail.updated(); if (!all) return; } if (all || propertyName.equals("graphicTextGap")) { graphicTextGapDetail.setValue(labeled != null ? f.format(labeled.getGraphicTextGap()) : "-"); graphicTextGapDetail.setIsDefault(labeled == null || labeled.getGraphic() == null); graphicTextGapDetail.setSimpleProperty(labeled != null ? labeled.graphicTextGapProperty() : null); if (!all) graphicTextGapDetail.updated(); if (!all) return; } if (all || propertyName.equals("alignment")) { alignmentDetail.setValue(labeled != null ? labeled.getAlignment().toString() : "-"); alignmentDetail.setIsDefault(labeled == null); alignmentDetail.setEnumProperty(labeled != null ? labeled.alignmentProperty() : null, Pos.class); if (!all) alignmentDetail.updated(); if (!all) return; } if (all || propertyName.equals("textAlignment")) { textAlignmentDetail.setValue(labeled != null ? labeled.getTextAlignment().toString() : "-"); textAlignmentDetail.setIsDefault(labeled == null); textAlignmentDetail.setEnumProperty(labeled != null ? labeled.textAlignmentProperty() : null, TextAlignment.class); if (!all) textAlignmentDetail.updated(); if (!all) return; } if (all || propertyName.equals("textOverrun")) { textOverrunDetail.setValue(labeled != null ? labeled.getTextOverrun().toString() : "-"); textOverrunDetail.setIsDefault(labeled == null); textOverrunDetail.setEnumProperty(labeled != null ? labeled.textOverrunProperty() : null, OverrunStyle.class); if (!all) textOverrunDetail.updated(); if (!all) return; } if (all || propertyName.equals("contentDisplay")) { contentDisplayDetail.setValue(labeled != null ? labeled.getContentDisplay().toString() : "-"); contentDisplayDetail.setIsDefault(labeled == null); contentDisplayDetail.setEnumProperty(labeled != null ? labeled.contentDisplayProperty() : null, ContentDisplay.class); if (!all) contentDisplayDetail.updated(); if (!all) return; } if (all || propertyName.equals("underline")) { underlineDetail.setValue(labeled != null ? Boolean.toString(labeled.isUnderline()) : "-"); underlineDetail.setIsDefault(labeled == null || !labeled.isUnderline()); underlineDetail.setSimpleProperty(labeled != null ? labeled.underlineProperty() : null); if (!all) underlineDetail.updated(); if (!all) return; } if (all || propertyName.equals("wrapText")) { wrapTextDetail.setValue(labeled != null ? Boolean.toString(labeled.isWrapText()) : "-"); wrapTextDetail.setIsDefault(labeled == null || !labeled.isWrapText()); wrapTextDetail.setSimpleProperty(labeled != null ? labeled.wrapTextProperty() : null); if (!all) wrapTextDetail.updated(); if (!all) return; } if (all) sendAllDetails(); } }