JavaFX Properties and Bindings

Hi, we would like to share a chart of the classes and interfaces for properties and bindings. Enjoy! Regards, Niklas
http://www.niklashofmann.eu/stuff/JavaFX-Properties-and-Binding.pdf
http://www.niklashofmann.eu/stuff/JavaFX-Properties-and-Binding.vsd

Looking at the diagrams I realize for the first time how complex properties and bindings are. :-)

Similar Messages

  • Analyzer Chart Properties and Speedsheet Properties

    Hyperion' Analyzer Release 5.0.3if I remove 3D in the Chart Properties, and change the properties of Speedsheet, it is all right in the Analyzer tool, but it displays default properties when I call it on the java client web.It only can keep Chart properties or Speedsheet properties on the java client web, not both.What can I do to resolve the problem? Is it a bug for Analyzer 5.0.3?Thanks first!

    Looking at the diagrams I realize for the first time how complex properties and bindings are. :-)

  • Drag and Drop objects with JavaFX properties

    Has anyone tried to implement drag and drop functionality with objects containing JavaFX properties? The issue I'm running into is that the objects appear to need to be serializable, and the JavaFX properties are not serializable. I can implement Externalizable instead of Serializable, and basically serialize the values contained by the FX properties, but of course I lose any bindings by doing this (as the listeners underlying the bindings are not serialized).
    The [url http://docs.oracle.com/javafx/2/api/javafx/scene/input/Clipboard.html]javadocs for Clipboard state "In addition to the common or built in types, you may put any arbitrary data onto the clipboard (assuming it is either a reference, or serializable. See more about references later)" but I don't see any further information about references (and at any rate, this doesn't really make sense since anything that's serializable would be a reference anyway). Is there a special DataFormat I can use to specify a reference in the local JVM so the reference gets passed without serialization?
    I know this might not make sense without a code example; I just thought someone might have come across this closely enough to recognize the problem. I'll try to post a code example tonight...

    Here's pretty much the simplest example I can come up with. I have a real-world example of needing to do this, but the object model for the real example is quite a bit more complex.
    For the toy example, imagine we have a list of projects, some employees, and we want to assign each project to one or more employees. I have a Project class with a title and assignee. (In real life you can imagine other properties; due date, status, etc.) I'll keep a ListView with a bunch of unassigned projects (titles but assignees equal to null) and then a ListView for each of the employees.
    To assign a project to an employee, the user should be able to drag from the "master" list view to one of the employee list views. When the project is dropped, we'll create a new project, set the assignee, and bind the title of the new project to the title of the project which was dragged. (Remember we want to be able to assign a single project to multiple employees.)
    So here's the first shot:
    A couple of simple model classes
    Project.java
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import javafx.beans.property.ObjectProperty;
    import javafx.beans.property.SimpleObjectProperty;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.beans.property.StringProperty;
    public class Project {
         private final StringProperty title ;
         private final ObjectProperty<Employee> assignee ;
         public Project(String title) {
              this.title = new SimpleStringProperty(this, "title", title);
              this.assignee = new SimpleObjectProperty<Employee>(this, "assignee");
         public Project() {
              this("");
         public StringProperty titleProperty() {
              return title ;
         public String getTitle() {
              return title.get() ;
         public void setTitle(String title) {
              this.title.set(title);
         public ObjectProperty<Employee> assigneeProperty() {
              return assignee ;
         public Employee getAssignee() {
              return assignee.get();
         public void setAssignee(Employee assignee) {
              this.assignee.set(assignee);
         @Override
         public String toString() {
              String t = title.get();
              Employee emp = assignee.get();
              if (emp==null) {
                   return t;
              } else {
                   return String.format("%s (%s)", t, emp.getName()) ;
    }Employee.java
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.beans.property.StringProperty;
    public class Employee {
         private StringProperty name ;
         public Employee(String name) {
              this.name = new SimpleStringProperty(this,"name", name);
         public StringProperty nameProperty() {
              return name ;
         public String getName() {
              return name.get();
         public void setName(String name) {
              this.name.set(name);
    }and the application
    DnDExample.java
    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.collections.ObservableList;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.control.ListCell;
    import javafx.scene.control.ListView;
    import javafx.scene.control.TextField;
    import javafx.scene.input.ClipboardContent;
    import javafx.scene.input.DataFormat;
    import javafx.scene.input.DragEvent;
    import javafx.scene.input.Dragboard;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.input.TransferMode;
    import javafx.scene.layout.HBox;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    public class DnDExample extends Application {
         private static final DataFormat PROJECT_DATA_FORMAT = new DataFormat("com.example.project"); // is there something special I can use here?
         @Override
         public void start(Stage primaryStage) {
              final HBox root = new HBox(5);
              final ListView<Project> allProjects = new ListView<Project>();
              final Employee fred = new Employee("Fred");
              final Employee ginger = new Employee("Ginger");
              final ListView<Project> fredsProjects = new ListView<Project>();
              final ListView<Project> gingersProjects = new ListView<Project>();
              final VBox employeeLists = new VBox(5);
              employeeLists.getChildren().addAll(new Label("Fred's Projects"), fredsProjects, new Label("Ginger's Projects"), gingersProjects);
              root.getChildren().addAll(allProjects, employeeLists);
              allProjects.setCellFactory(new Callback<ListView<Project>, ListCell<Project>>() {
                   @Override
                   public ListCell<Project> call(ListView<Project> listView) {
                        return new AllProjectListCell();
              allProjects.setEditable(true);
              final EventHandler<DragEvent> dragOverHandler = new EventHandler<DragEvent>() {
                   @Override
                   public void handle(DragEvent dragEvent) {
                        if (dragEvent.getDragboard().hasContent(PROJECT_DATA_FORMAT)) {
                             dragEvent.acceptTransferModes(TransferMode.COPY);
              fredsProjects.setOnDragOver(dragOverHandler);
              gingersProjects.setOnDragOver(dragOverHandler);
              fredsProjects.setOnDragDropped(new DragDropHandler(fred, fredsProjects.getItems()));
              gingersProjects.setOnDragDropped(new DragDropHandler(ginger, gingersProjects.getItems()));
              allProjects.getItems().addAll(new Project("Implement Drag and Drop"), new Project("Fix serialization problem"));
              Scene scene = new Scene(root, 600, 400);
              primaryStage.setScene(scene);
              primaryStage.show();
         public static void main(String[] args) {
              launch(args);
         private class DragDropHandler implements EventHandler<DragEvent> {
              private final Employee employee ;
              private final ObservableList<Project> itemList;
              DragDropHandler(Employee employee, ObservableList<Project> itemList) {
                   this.employee = employee ;
                   this.itemList = itemList ;
              @Override
              public void handle(DragEvent event) {
                   Dragboard db = event.getDragboard();
                   if (db.hasContent(PROJECT_DATA_FORMAT)) {
                        Project project = (Project) db.getContent(PROJECT_DATA_FORMAT);
                        Project assignedProject = new Project();
                        assignedProject.titleProperty().bind(project.titleProperty());
                        assignedProject.setAssignee(employee);
                        itemList.add(assignedProject);
         private class AllProjectListCell extends ListCell<Project> {
              private TextField textField ;
              private final EventHandler<MouseEvent> dragDetectedHandler ;
              AllProjectListCell() {               
                   this.dragDetectedHandler = new EventHandler<MouseEvent>() {
                        @Override
                        public void handle(MouseEvent event) {
                             Dragboard db = startDragAndDrop(TransferMode.COPY);
                             ClipboardContent cc = new ClipboardContent();
                             cc.put(PROJECT_DATA_FORMAT, getItem());
                             db.setContent(cc);
                             event.consume();
                   this.setEditable(true);
              @Override
              public void updateItem(final Project project, boolean empty) {
                   super.updateItem(project, empty);
                   if (empty) {
                        setText(null);
                        setGraphic(null);
                        setOnDragDetected(null);
                   } else if (isEditing()) {
                        if (textField != null) {
                             textField.setText(getItem().getTitle());
                        setText(null) ;
                        setOnDragDetected(null);
                        setGraphic(textField);                    
                   } else {
                        setText(project.getTitle());
                        setOnDragDetected(dragDetectedHandler);
              @Override
              public void startEdit() {
                   super.startEdit();
                   if (!isEmpty()) {
                        textField = new TextField(getItem().getTitle());
                        textField.setMinWidth(this.getWidth()-this.getGraphicTextGap());
                        textField.focusedProperty().addListener(new ChangeListener<Boolean>() {
                             @Override
                             public void changed(
                                       ObservableValue<? extends Boolean> observable,
                                       Boolean oldValue, Boolean newValue) {
                                  if (! newValue) {
                                       getItem().setTitle(textField.getText());
                                       commitEdit(getItem());
                        setText(null);
                        setGraphic(textField);
                        setOnDragDetected(null);
              @Override
              public void cancelEdit() {
                   super.cancelEdit();
                   if (!isEmpty()) {
                        setText(getItem().getTitle());
                        setGraphic(null);
                        setOnDragDetected(dragDetectedHandler);
                   } else {
                        setText(null);
                        setGraphic(null);
                        setOnDragDetected(null);
              @Override
              public void commitEdit(Project project) {
                   super.commitEdit(project);
                   if (!isEmpty()) {
                        setText(getItem().getTitle());
                        setGraphic(null);
                        setOnDragDetected(dragDetectedHandler);
    }If you try to drag from the list on the left to one of the lists on the right, it will fail pretty quickly and tell you that the data need to be Serializable.
    Simply adding "implements Serializable" to the Project and Employee classes doesn't work, as you find that SimpleStringProperty and SimpleObjectProperty are not Serializable. So instead I can use Externalizable:
    public class Project implements Externalizable {
    @Override
         public void writeExternal(ObjectOutput out) throws IOException {
              out.writeObject(title.get());
              out.writeObject(assignee.get());
         @Override
         public void readExternal(ObjectInput in) throws IOException,
                   ClassNotFoundException {
              setTitle((String)in.readObject());
              setAssignee((Employee)in.readObject());
    }and
    public class Employee implements Externalizable {
         @Override
         public void writeExternal(ObjectOutput out) throws IOException {
              out.writeObject(name.get());
         @Override
         public void readExternal(ObjectInput in) throws IOException,
                   ClassNotFoundException {
              setName((String) in.readObject());
    }This makes the drag and drop work, but if you drop a project on one of the employee lists, then edit the project title in the master list, the binding is not respected. This is because deserialization creates a new SimpleStringProperty for the title, which is not the property to which the title of the new Project object is bound.
    What I really want to do is to be able to drag and drop an object within the same JVM simply by passing the object by reference, rather than by serializing it. Is there a way to do this? Is there some DataFormat type I need?

  • Binding issue between POJO properties and JavaFX components

    Currently, what I want to do is use bidirectionnal binding between POJO properties and JavaFX components.
    For example, if the property is a String, a Textfield will be generated and binded with it.
    My POJOs are generated by JAXB.
    To do that, I proceeded as followed :
    In order to make the binding works I changed the default generation of JAXB
    I created a factory which takes a class instance at input and return a Map containing the POJO properties as key and the JavaFX components as value
    I displayed this map in a JFXPanel
    Here is a sample of the factory  :
    public static Map<Field, Node> createComponents(Object obj) throws NoSuchMethodException
               Map<Field, Node> map = new LinkedHashMap<Field, Node>();
               for (final Field field : obj.getClass().getDeclaredFields())
                   @SuppressWarnings("rawtypes")
                   Class fieldType = field.getType();
                   if (fieldType.equals(boolean.class) || (fieldType.equals(Boolean.class))) //Boolean
                       map.put(field, createBool(obj, field));
                   else if (fieldType.equals(int.class) || (fieldType.equals(Integer.class))) //Integer
                      map.put(field, createInt(obj, field));
                   else if (fieldType.equals(BigInteger.class)) //BigInteger
                      map.put(field, createBigInt(obj, field));
                   else if (fieldType.equals(long.class) || fieldType.equals(Long.class)) //Long
                      map.put(field, createLong(obj, field));
                   else if (fieldType.equals(String.class)) //String
                      map.put(field, createString(obj, field));
               return map;  
    public static Node createBool(Object obj, final Field field) throws NoSuchMethodException
       System.out.println(field.getType().getSimpleName() + " spotted");
       JavaBeanBooleanProperty boolProperty = JavaBeanBooleanPropertyBuilder.create().bean(obj).name(field.getName()).build();
      boolProperty.addListener(new ChangeListener<Boolean>() {
       @Override
       public void changed(ObservableValue<? extends Boolean> arg0, Boolean arg1, Boolean arg2)
      prettyPrinter(field, arg1, arg2);
       CheckBox cb = new CheckBox();
      cb.setText(" : " + field.getName());
      cb.selectedProperty().bindBidirectional(boolProperty);
       return cb;}
    So, the problem I have is : Sometimes the binding will work and sometimes it won't. For example, the binding is working unless I changed the declaration property order in the POJO, or unless I resized the panel where components are displayed.
    Does anybody have an idea of what I am doing wrong ?
    Thanks,
    Bastien

    You may like to look at the PropertySheet from ControlsFX.
    Not sure if it does what you want, but the concept appears similar.

  • On differences between JavaFX CSS and the w3c standard css

    This is a discussion topic which came to mind after reading comments in this thread Re: FXML, css and -fx-font-family
    Feel free to comment or share your thoughts on the topic.
    Note that these comments relate to the naming and semantic meanings of css tags, and not the syntax and parsing of css (as both w3c css and javaFX css seem to be equivalent in the later regard).
    You know, sometimes I find JavaFX's lack of certain css features refreshing. It is nice to have all, well, almost all, of the JavaFX CSS documented on one page. I think if you were to do the same thing for w3c css then it would end up with a much larger, more difficult to understand document and even what the contents of that document should be would probably be pretty controversial, in the same kind of way that the HTML5 specification ended up being. Microsoft contributed over 7000 tests to w3c just to cover only a subset of the css rules available in browsers today. The webkit project lists almost a thousand open CSS bugs: https://bugs.webkit.org/buglist.cgi?product=WebKit&component=CSS&resolution=---. So implementing even partial w3c CSS support is a complex project.
    When I first started using JavaFX CSS I found the differences to w3c CSS quite jarring, and it was hard to account for them. Now that I am used to JavaFX CSS, I don't have as much of an issue. The difference in names and semantics is going to be an impediment to designers working on JavaFX who are familar with w3c CSS - but the designers will quickly also discover that FXML is not HTML and Java is not JavaScript and JavaFX deployment is not HTML deployment. So, perhaps, in the larger picture, it is not as big a deal as it would seem. Still, one can't help think that any impediment to people easily picking up and adopting JavaFX is doing the technology a disservice.
    There are other advantages in having the JavaFX CSS in it's own namespace to w3c css, in that it can evolve seperately, it is not expected to be exactly the same because it has a different name, it is not expected to fully implement w3c css as browsers do because it's clearly a different thing by name, etc. There is even precedent for it in the use by mozilla of moz- CSS prefixes and webkit css properties http://css-infos.net/properties/webkit - the web as not as standard as a lot of people propose. JavaFX CSS is backing a JavaFX rendering engine and not an HTML rendering engine. It is quite remarkable that Oracle was able to build and make available a CSS model for JavaFX that feels as familar as it does to w3c css, as w3c css is targeted very strongly toward styling a completely different technology set (HTML markup and document object model).
    It would be useful to have a tool which translates w3c css to approximations of JavaFX css and vice versa, or the ability for JavaFX to have a mode (perhaps a boolean value when a stylesheet is loaded) to perform an automatic alias or mapping of w3c css to javafx (at least for the subset of w3c css which would make sense to automatically translate to JavaFX css). I haven't checked the JavaFX jira in detail, so perhaps a request for such support already exists - perhaps it is under the private http://javafx-jira.kenai.com/browse/RT-9272 jira.
    The JavaFX css model is really powerful and I have found really useful some of the additions that it adds above the baseline 2.1 css that is found consistently in browsers. With the upcoming Java CSS object model http://javafx-jira.kenai.com/browse/RT-17293, you will also get better programmatic access from Java.
    So, nice work on building and implementing this complex feature . . .

    Thanks for the feedback. Closing the gap between JavaFX CSS and W3C CSS will be an evolutionary process. It would be nice to use a standard's based stylesheet but there is not always a 1-1 mapping to JavaFX. But for those properties that can be mapped, it is something that should be supported. For example, we should be able to handle "font" or "-fx-font".
    I have made http://javafx-jira.kenai.com/browse/RT-9272 public.

  • Request: Mechanism to generate JavaFX Properties

    Hello,
    I am making a request for some mechanism to generate JavaFX Properties. Maybe something for the eclipse IDE. I don't know if Netbeans has such a tool, but some of us are not current user of Netbeans.
    Although JavaFX is a beauty to work with, the management/genaration of the properties is quite tedious.
    Thanks

    You may be interested in Re: Java(FX) Property Compiler "Java(FX) Property Compiler"
    I don't think the JavaFX team will provide such a mechanism (well without it being perhaps created for something like Java9). You could file a request against the e(fx)clipse project and/or project Lombok.
    http://efxclipse.org/trac/newticket
    http://code.google.com/p/projectlombok/issues/list

  • Regenerate the security files : SecStore.properties and SecStore.key

    Hello Expert,
    I have a big issue because I lost the both files : SecStore.properties and SecStore.key from the directory /sapmnt/SID/global/security/data. I tried to regenerate the SecStore.properties  from another instance. And when I tried to connect via Configtool I have the following error message : The encryption key (usually in the key files) is
    not  the key that is required to decrypt the data in the secure store file or the system name is wrong (SID).
    I think that the idea is to generate the new key file.
    Could you please help me to find a solution to solve this issue.
    Many thanks in advance for your greatfull help.
    Regards
    San

    Check this out, though it doesn't directly address your problem. It should definately give you more insight.
    http://help.sap.com/saphelp_nw04/helpdata/en/cd/14c93ec2f7df6ae10000000a114084/frameset.htm

  • SOAP Use Adapter-Specific Message Properties and Variable Transport Binding

    Hi Friends,
       I am new to use to Soap Adapter. Please help me out bellow doubts.
       1.When you use Use Adapter-Specific Message Properties and Variable Transport Binding .
       2. Where exactly  we r using below parameters.
    Remote User : (technical name: SRemoteUser )
    Remote Host : (technical name: SRemoteHost )
    SOAP Action (technical name: SHeaderSOAPACTION )
    To transfer further header fields, set the relevant indicator. You can then store the following attributes and their values in the XI message header:
    Variable Header : (technical name: XHeaderName1 )
    Variable Header : (technical name: XHeaderName2 )
    Variable Header : (technical name: XHeaderName3 )
    Thanks&Regards
    G.Bhanuprakash

    Hi,
       1.When you use Use Adapter-Specific Message Properties and Variable Transport Binding .
    SAP Help says both are needed to be checked when you want to process adapter attributes
    Configuring the Receiver SOAP Adapter - SAP NetWeaver Exchange Infrastructure - SAP Library
    These attributes can be get/set using dynamic configuration and their technical names are what you have pasted:
    Remote User : (technical name: SRemoteUser )
    Remote Host : (technical name: SRemoteHost )
    SOAP Action (technical name: SHeaderSOAPACTION )
    To transfer further header fields, set the relevant indicator. You can then store the following attributes and their values in the XI message header:
    Variable Header : (technical name: XHeaderName1 )
    Variable Header : (technical name: XHeaderName2 )
    Variable Header : (technical name: XHeaderName3 )
    Remote User - the username used to send a message to the adapter engine using SOAP
    Remote Host - hostname which the remote user used
    SOAP Action - SOAP Action of the XI webservice (sender) / SOAP Action of the receiver webservice
    Variable Headers are additional key-value pairs in the HTTP Header that could be accessed in the XI Header using dynamic configuration. The limit is only three though.
    Regards,
    Mark

  • When i plug my ipod in it says ipod cant be read cuz the apple mobile device is not started.And i went to services and apple mobile device properties and start stops in the middle.and its on automatic.and there isnt a stop button.

    when i plug my ipod in it says ipod cant be read cuz the apple mobile device is not started.And i went to services and apple mobile device properties and start stops in the middle.and its on automatic.and there isnt a stop button.when i click start it says the apple mobile device services stopped in the middle then stopped.it said some services stop in the middle if not used by other services.and i just updated itunes before all a this and ever since ive had errors.

    Have you looked at this article:
    iPhone, iPad, iPod touch: How to restart the Apple Mobile Device Service (AMDS) on Windows

  • Author metadata separated by semi-colons truncated in file properties and "Get Info"

    I'm using Acrobat Professional 9.0 (CS3) for Mac to edit the metadata for a collection of PDFs to be made available on the web. When I enter the data, I am inputting a list of authors separated by commas, like this: Smith J, Watson C, Brown J. If I click on "Additional metadata", the data I've already entered is transposed into the various XMP fields. And the commas separating the author names are changed to semi-colons. I gather that this happens because XMP wants to separate multiple authors with semi-colons, and Acrobat wants the metadata in XMP fields to match the metadata stored for the file properties. Fine.
    However, if I save such a PDF and then use Get Info on my Mac (OSX 10.4) to look at the file properties, the list of authors is now truncated where the first semi-colon appears. The list is also truncated in Windows XP if I right-click and select properties. The list is also truncated when I look at the file properties in Preview on my Mac, or if I look at file properties using FoxIT, or using Adobe Acrobat Reader 7 or earlier. The only way a site visitor will actually be able to view the full list of authors in a file saved this way is to use Adobe Reader version 8 or later.
    I would like to preserve XMP/Dublin Core/etc metadata in the proper format in the XMP code, but would also like users of standard, popular file viewers to be able to access the full list of authors. Is there a way to do this with Acrobat 9?
    Also, once I've saved a file and the XMP metadata has been altered, Acrobat seems to permanently change the way that the authors are listed in the file properties. I cannot manually change those settings any longer without Acrobat overriding my changes and converting commas to semi-colons, or surrounding the entire list of authors in quotation marks. Is there a way to get around these Acrobat overrides and manually take control of my metadata again?
    Does Windows Vista read the authors list correctly in the file properties if it is separated by semi-colons?
    It seems to me that in an attempt to get XMP metadata working smoothly across the entire CS line, Adobe has jumped the gun somewhat and is now forcing Acrobat users to use "file properties" metadata that is really only fully compatible with Adobe products. Is there a way I can get some backwards compatibility on this?
    Thanks for any suggestions or insight anyone can provide to this vexing issue.
    Phil.

    Bridge has some pretty powerful and helpful features. However, I am unable to figure out how to access the non-XMP "file properties" fields through Bridge, and if I add metadata via Bridge, then I run into the same problem regarding the use of semi-colons to separate authors.
    If I had more time, or a larger set of files I might investigate the use of ExtendScript to import all my metadata from an Excel file (where it already exists) into the PDF file properties and XMP metadata.
    The best solution for my case though appears to be to use Acrobat 9 and to do the double-edit process for each file. I should be able to just cut-and-paste the metadata from the Excel file, and then if I save the Authors list to the end, I can simply paste it once into the XMP field (through the Advanced metadata button) and then return to the regular file properties page and paste it again in there, where Acrobat will add quotes around it.
    Lastly, if anyone else happens to find this post and is looking for similar information, I would recommend searching in the Bridge forum as well as the Acrobat forum.
    Phil.

  • Creating Properties and Methods for an exe built in LabVIEW

    Hi all,
    How do we create properties and methods for an executable built in LabVIEW.
    I know when building an exe, the "Enable ActiveX server" option in advanced has to be enabled.
    But after that how do we create Properties and methods for the activeX component.
    Your help is greatly appreciated.
    Regards,
    Muthuraman S
    Regards,
    Muthuraman

    You cannot build your own COM specific properties and methods for the ActiveX interface in LabVIEW, the only thing exposed are the normal VI server properties and methods.
    Ton
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!

  • Should I load properties and or preferentces into a hashmap??

    Would this make any difference performance wise?
    I use properties mostly for localized labels so it shouldn't affect much as they're loaded only once. But my code is checking preferences quite often...
    On the oder hand prefferences are writen to storage asynchronously but... is this true for reading? does the jvm maintain some kind of preferences cache or does it access back end for each prefference read?
    Thanks in advance,
    David

    oh, I'm sorry if I didn't express my question correctly, let me try again :-)
    I'm using both properties and preferences for two distinc pourposes:
    First I use properties for localization. I'm not really bothered for performance in this case as these are read only once at startup anyway. I was jus curious.
    Second I use preferences for application configuration data persistance. Say the current db url, or some path... This preferences are to be checked a lot of times during programm execution, hence the question.
    If preferencesr were not cached by the system then it would make sense to load them into a hashtable at startup and use this instead. If they were in fact cached by the system then I would preffer to stick with the convenience of having the jvm storing them automatically at shutdown time.
    Third: there are probably many performance problems in your code,This I'm sure but I've to try caching any problem I can see :-)
    Fourth: Property objects are loaded once and then cached.Ok, this part is now clear thaks to your reply and the one from sabre which, of course, I thank a lot.
    Regards,
    David

  • Order of execution of named method user properties and server script

    Dear All,
    If for a Custom method on an applet, we have scripts in WebApplet_preinvokemethod and WebApplet_invokemethod and also for the same Custom method we have applet Named Method user properties and BC Named Method user properties, what will be the order of execution of these scripts and Named Method user properties??

    The Private Event Submission sample portlet shows how to achieve this. It is part of the PDK download.
    Peter

  • Best way to store objects' properties and later remake those objects?

    I want to create a bunch of objects, set their properties and then save that so on restart, the objects can be reconstituted. Is serialization the best way/ Some other way? I want to store them in XML so I can also create a GUI to show the objects stored.

    JoachimSauer wrote:
    6tr6tr wrote:
    I want to create a bunch of objects, set their properties and then save that so on restart, the objects can be reconstituted. Is serialization the best way/ Some other way?Serialization is definitely one way to do that.
    I want to store them in XMLUse JAXB or XMLEncoder/XMLDecoder.
    so I can also create a GUI to show the objects stored.What does a GUI have to do with writing XML? I don't see how that's in any way related.Thanks. What I meant was that I want to have a JTree populated easily with that info and I know there's good support for populating a JTree with XML.

  • Best way to handle .properties and .xml files

    Hi,
    I have an application which contains so many properties and XML files, these are a part of WAR file which we deployed in
    tomcat server. Whenever we make changes to these properties and XML files we redeploy the app and start the server.
    Is there any way we can make sure that these files can take changes without redeploying or starting the server?
    Please clarify.
    Thanks.

    Sure - keep them outside of the war. Pick any directory where you can put them (a directory where the server is allowed to read of of course), load them from that directory in your application. Make sure you can reach that directory through (S)FTP to easily be able to modify them. Then all you need is a way to reload them in the application, should the information be cached.

Maybe you are looking for

  • I would like to sell Apple accessories, but how to go about it?

    Hi all and thank you for reading this post. I am from overseas, and very much interested in selling some Apple products and accessories to Apple users back in my country. Of course, i can not qualify to be a certified reseller, due to requirement. I

  • Program not working with Integrated ITS

    We are calling program SAPLXUSR at log-on and the program is not carrying out the funtions when being used with the Integrated ITS. This program works correctly with the Standalone ITS but we are unable to execute it using the Integrated ITS. We are

  • Date columns in owb from mainframe

    I get data in flat file from mainframe. In mainframe if date column is high date then it will be assigned defualt '9999-12-31' . Now I am trying to load into OWB and it converts to 31-dec-99 with mask 'yyyy-mm-dd' . I cant distinguish it has high dat

  • [SOLVED] Can't launch Cinnamon

    I've installed cinnamon-git using yaourt. Installation was OK, but trying to launch cinnamon using causes error: >cinnamon --replace Window manager warning: Failed to load theme "Adwaita": Failed to find a valid file for theme Currently wiki propose

  • Facebook wont load on wifi but will on 3G.

    Hi, i have an iphone 5 and it wont load on my wifi, i dont know what to do, my brother has an iphone 5 and his is fine, and i was hoping someone has had the same problem and has fixed it, i had a 3gs and that was jailbroken but ive had a 4, 4s and no