All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.jsoagger.jfxcore.engine.components.form.fieldset.layout.menu.FieldsetSubmenuRow Maven / Gradle / Ivy

There is a newer version: 1.0.3
Show newest version
/*-
 * ========================LICENSE_START=================================
 * JSoagger 
 * %%
 * Copyright (C) 2019 JSOAGGER
 * %%
 * 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.
 * =========================LICENSE_END==================================
 */

package io.github.jsoagger.jfxcore.engine.components.form.fieldset.layout.menu;


import io.github.jsoagger.jfxcore.api.ISelectableComponent;

import javafx.css.PseudoClass;
import javafx.scene.control.Label;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.VBox;

/**
 * @author Ramilafananana VONJISOA
 * @mailto [email protected]
 * @date 2019
 */
public class FieldsetSubmenuRow extends VBox {

  private PseudoClass selected = PseudoClass.getPseudoClass("selected");

  /**
   * The label of the menu, and items count if displayed content has countable elements
   */
  private Label label = new Label();
  protected Label count = new Label();

  private String componentId;
  private FiedsetSelectorMenuRow menuRow;
  private boolean isselected = false;


  /**
   * Constructor
   */
  public FieldsetSubmenuRow() {
    getStyleClass().add("fieldset-selector-submenu-row");
  }


  /**
   * @param fieldset
   */
  public void buildFrom(ISelectableComponent component) {
    this.componentId = component.getComponentId();

    String title = component.getSelectionLabel();
    label.getStyleClass().add("fieldset-selector-submenu-row-label");
    label.setText(title);
    getChildren().add(label);

    addEventFilter(MouseEvent.MOUSE_CLICKED, e -> {
      if (!isselected) {
        select();
      }
    });
  }


  /**
   * @param selected
   */
  public void select() {
    menuRow.clearSelection();
    pseudoClassStateChanged(selected, true);
    label.pseudoClassStateChanged(PseudoClass.getPseudoClass("selected"), true);
    menuRow.select(componentId);
  }


  /**
   * @param b
   * @return
   */
  public void clearSelection() {
    pseudoClassStateChanged(selected, false);
    label.pseudoClassStateChanged(PseudoClass.getPseudoClass("selected"), false);
  }


  /**
   * @param fiedsetSelectorMenuRow
   */
  public void setParentRow(FiedsetSelectorMenuRow fiedsetSelectorMenuRow) {
    this.menuRow = fiedsetSelectorMenuRow;
  }


  /**
   * Getter of count
   *
   * @return the count
   */
  public Label getCount() {
    return count;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy