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

org.sdmlib.javafx.FX Maven / Gradle / Ivy

Go to download

SDMLib is a light weight modeling library. SDMLib intentionally comes without any tool or editor.

There is a newer version: 2.3.2341
Show newest version
package org.sdmlib.javafx;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;

import org.sdmlib.serialization.PropertyChangeInterface;

import de.uniks.networkparser.interfaces.SendableEntityCreator;
import de.uniks.networkparser.IdMap;

public class FX
{

   public static void bindTextFieldIntegerProperty(IdMap idMap, final TextField field, 
         final PropertyChangeInterface modelObject, final String property)
   {
      final SendableEntityCreator creator = idMap.getCreatorClass(modelObject);
      
      // bind property change listener to model object
      PropertyChangeListener listener = new PropertyChangeListener()
      {  
         @Override
         public void propertyChange(PropertyChangeEvent evt)
         {
            int value = (int) creator.getValue(modelObject, property);
            field.setText("" + value);
         }
      };
      
      modelObject.getPropertyChangeSupport().addPropertyChangeListener(property, listener);
      
      listener.propertyChange(null);
      
      // add listener to text field
      field.setOnAction(new EventHandler()
      {
         
         @Override
         public void handle(ActionEvent arg0)
         {
            int value = Integer.parseInt(field.getText());
            creator.setValue(modelObject, property, value, null);
         }
      });
      
      field.focusedProperty().addListener(new ChangeListener()
      {

         @Override
         public void changed(ObservableValue arg0, Boolean arg1, Boolean newValue)
         {
            if (newValue == false)
            {
               int value = Integer.parseInt(field.getText());
               creator.setValue(modelObject, property, value, null);
            }
         }
      });
      
   }

   public static void bindListProperty(IdMap idMap, VBox vBox, PropertyChangeInterface listRoot,
         String property, Class elementControllerClass)
   {
      new ModelListController(idMap, vBox, listRoot, property, elementControllerClass);
   }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy