JavaFX Tree Scenario

At present I am experimenting with trees in JavaFX and would like to know if the following scenario is possible? At present I have a tree structure that displays a checkbox for every tree node except the root node where I use a graphics icon. Now what I would like to combine with the above is for a textbox to appear when a node is selected, so that the user can edit the treeitems value/label. Can this be achieved in conjunction with what I have at present, cause I have the nasty feeling it probably is not possible in combination? If I use the TableView tutorial on the JavaFX website as an example. I'm curious to see what other peoples responses are in relation to this?

Yeah it's possible, I tried hacking up some really ugly buggy code which I won't paste here to verify an approach for this.
Approach was:
1. Create a TreeView as here => http://download.oracle.com/javafx/2.0/api/javafx/scene/control/TreeView.html
2. Type the TreeView as a new CheckedString utility class containing both a boolean value for the check and a string value for the check label.
3. On the root of the treeview set a graphic.
4. Create an editable TreeView cell factory as detailed in 13-9 and 13-10 here => http://download.oracle.com/javafx/2.0/ui_controls/table-view.htm
5. In this case you don't want to use the setContentDisplay method as is done in 13-9
6. In the editing tree cell, instead of setting the content display of the node, store two views on the field, one an editable view and another one readonly.
7. Editable view consists of a checkbox + textfield in a hbox.
8. Readonly view consists of just a labeled checkbox.
9. When the startEdit method is called, reject the call if the call is for the tree root (that way the root graphic is not editable).
10. In startEdit switch the state of the TreeCells current view to the editable view by setting the cells graphic to the edit view.
11. In the cancelEdit switch the state of the TreeCells current view to the readonly view by setting the cells graphic to the read only view.
12. In the updateItem, if it is the root item, just show the root graphic, otherwise query the current state of the TreeCell and refresh and show either the edit or read only view as appropriate (by switching the cells graphic).
Seems complicated, but you are also trying to design a reasonably complicated UI node. You will have to tweak the thing a bit to make it nice and usable. If at all possible, I'd advise a reconsidering the UI design and trying for something simpler.

Similar Messages

  • Seeking Advice on JavaFX Trees

    I would like to know what would be the best way to tackle and implement the following:
    In many programmes their help sections list a swag of topics listed in a tree. When a user selects a tree item the book icon can change
    from a closed book to an open book icon and vice versa if it's already open. I know Swing could handle this scenario easily, but how
    about JavaFX? Any advice or samples will be most welcome!

    Hi John,
    Here is the portion of code I'm using to perform the tree icon image manipulation:
    Please bear in mind John this is experimental code, I was just trying to see what worked and what didn't.
    treeViewHelp = new TreeView<String>(root);      
    treeViewHelp.getSelectionModel().selectedItemProperty().addListener(new ChangeListener()
    {   @Override
         public void changed(ObservableValue observable, Object oldValue, Object newValue)
         {   final int i = treeViewHelp.getSelectionModel().getSelectedIndex();
             if((treeViewHelp.getTreeItem(i).isExpanded() == true) && (treeViewHelp.getSelectionModel().isSelected(i) == true) && (treeViewHelp.getTreeItem(i).isLeaf() == true))
             {   treeViewHelp.getTreeItem(i).setGraphic(new ImageView(new Image(getClass().getResourceAsStream("Icons/Tree_Closed_Book.png"))));
             else if((treeViewHelp.getTreeItem(i).isExpanded() == false) && (treeViewHelp.getSelectionModel().isSelected(i) == true))
             {   treeViewHelp.getTreeItem(i).setGraphic(new ImageView(new Image(getClass().getResourceAsStream("Icons/Tree_Open_Book.png"))));
    });Is this what you were envisioning?
    Cheers

  • JavaFX Tree with Drag n Drop functionality

    Hi
    I was trying to build a tree in JavaFX where the all the nodes of the tree will be draggable and droppable. Could anyone show me the way to do it or provide one nice example?
    Thanks
    Rashed

    Hi,
    I don't know if it's what you are looking for, but I programmed a small example of pure-JavaFX-DnD just recently and made a blog post about it:
    [http://my.opera.com/zilti/blog/proof-of-concept-series-drag-and-drop]

  • NPE in JavaFX compiler for bound function

    The following bound function:
    -- cut here --
    bound function buttonLocation(count) : Integer {
    if (count == 0)
    return 30
    else
    return 10 + (20 * count)
    -- cut here --
    is giving a NPE using NB 6.8 M2 as:
    - file 1.2.1_b28
    - and if possible, the source file which triggered this problem.
    Thank you.
    if (count == 0)
    An exception has occurred in the OpenJavafx compiler. Please file a bug at the Openjfx-compiler issues home (https://openjfx-compiler.dev.java.net/Issues) after checking for duplicates. Include the following diagnostic in your report and, if possible, the source code which triggered this problem. Thank you.
    java.lang.NullPointerException
    at com.sun.tools.javafx.comp.JavafxToBound.translate(JavafxToBound.java:143)
    at com.sun.tools.javafx.comp.JavafxToBound.translateForConditional(JavafxToBound.java:158)
    at com.sun.tools.javafx.comp.JavafxToBound.visitIfExpression(JavafxToBound.java:1168)
    at com.sun.tools.javafx.tree.JFXIfExpression.accept(JFXIfExpression.java:48)
    at com.sun.tools.javafx.comp.JavafxToBound.translate(JavafxToBound.java:174)
    at com.sun.tools.javafx.comp.JavafxToBound.visitBlockExpression(JavafxToBound.java:531)
    at com.sun.tools.javafx.tree.JFXBlock.accept(JFXBlock.java:83)
    at com.sun.tools.javafx.comp.JavafxToBound.translate(JavafxToBound.java:174)
    at com.sun.tools.javafx.comp.JavafxToBound.translateAsResult(JavafxToBound.java:149)
    at com.sun.tools.javafx.comp.JavafxToBound.translateAsLocation(JavafxToBound.java:139)
    at com.sun.tools.javafx.comp.JavafxToJava$FunctionTranslator.methodBody(JavafxToJava.java:2220)
    at com.sun.tools.javafx.comp.JavafxToJava$FunctionTranslator.doit(JavafxToJava.java:2279)
    at com.sun.tools.javafx.comp.JavafxToJava.visitFunctionDefinition(JavafxToJava.java:2292)
    at com.sun.tools.javafx.tree.JFXFunctionDefinition.accept(JFXFunctionDefinition.java:93)
    at com.sun.tools.javafx.comp.JavafxToJava.translateGeneric(JavafxToJava.java:500)
    at com.sun.tools.javafx.comp.JavafxToJava.translate(JavafxToJava.java:509)
    at com.sun.tools.javafx.comp.JavafxToJava.visitClassDeclaration(JavafxToJava.java:1261)
    at com.sun.tools.javafx.tree.JFXClassDeclaration.accept(JFXClassDeclaration.java:141)
    at com.sun.tools.javafx.comp.JavafxToJava.translateGeneric(JavafxToJava.java:500)
    at com.sun.tools.javafx.comp.JavafxToJava.translate(JavafxToJava.java:521)
    at com.sun.tools.javafx.comp.JavafxToJava.visitScript(JavafxToJava.java:1147)
    at com.sun.tools.javafx.tree.JFXScript.accept(JFXScript.java:89)
    at com.sun.tools.javafx.comp.JavafxToJava.translateGeneric(JavafxToJava.java:500)
    at com.sun.tools.javafx.comp.JavafxToJava.translate(JavafxToJava.java:517)
    at com.sun.tools.javafx.comp.JavafxToJava.toJava(JavafxToJava.java:691)
    at com.sun.tools.javafx.main.JavafxCompiler.jfxToJava(JavafxCompiler.java:728)
    at com.sun.tools.javafx.main.JavafxCompiler.jfxToJava(JavafxCompiler.java:699)
    at com.sun.tools.javafx.main.JavafxCompiler.compile2(JavafxCompiler.java:785)
    at com.sun.tools.javafx.main.JavafxCompiler.compile(JavafxCompiler.java:685)
    at com.sun.tools.javafx.main.Main.compile(Main.java:624)
    at com.sun.tools.javafx.main.Main.compile(Main.java:312)
    at com.sun.tools.javafx.Main.compile(Main.java:84)
    at com.sun.tools.javafx.Main.main(Main.java:69)
    ERROR: javafxc execution failed, exit code: 4
    Known issue ?

    Hi Sandeep,
    Thanks a lot for your quick reply! You were right, the logging directive was used both client and server side. I moved
    -Djava.util.logging.config.file=path/to/logging.propertiesfrom setDomainEnv.cmd to startWeblogic.cmd and WLS can be stopped correctly now.
    Regards,
    Bas

  • Looking for Vlan isolation with some scenarios

    Hello All,
    I am in the process of validating NPS and few other product like PacketFence
    Whats i interested at most is two scenarios that can do isolation to designated VLAN in tree scenario
    First scenario : We have Symantec endpoint protection AV and we would like to have isolation in case of 
    client infection
    AV not installed
    Second scenario: Our organization firewalls have ids Snort based capable of sending syslog alert or SQL log alert, we would like to have   ability to inform some how the nap/nps server with violating IP and have it VLAN isolated.
    Third Scenario: unknown device attached to socket wall conf room or somewhere else will be isolated Most of network equipment are based on HP Procurve 2910al ,2920 ,1900 
    My question to you NPS experts is possible with given above scenarios?
    Please advice
    Thanks

    Hi talb,
    If we only use the build-in SHV in NPS, we can't achieve your goal.
    The build-in SHV supports checking of the following items:
    Firewall settings
    Antivirus settins
    Spyware protection settings
    Update settings
    If you want to customize the NAP, some coding is needed.
    For detailed information, please refer to the link below:
    https://msdn.microsoft.com/en-us/library/aa369712(VS.85).aspx
    Here is the Public API for NAP:
    https://msdn.microsoft.com/en-us/library/aa369706(VS.85).aspx
    Best Regards.
    Steven Lee Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact [email protected]

  • Problem with continue in a for loop

    Hi all
    I have a variable of type Node[] which contains nodes like Text,ImageView and SVGPath etc...
    now i want to filter that group which means i want to separate the Text nodes for that i used a for loop as
    var abc:Node[];
    var abcsize=sizeof abc;
    var textarray:Text[]=for(i in abc){
    if(i.toString()=="Text"){
       i as Text;  //casting Node to Text
                     }//if
               else{
                      continue;     //if the node is not of type Text then i am skipping that one
                     }//else
          }//forwhen i am trying to compile this i am getting the compilation error as
    Note: An internal error has occurred in the OpenJFX compiler. Please file a bug at the
    Openjfx-compiler issues home (https://openjfx-compiler.dev.java.net/Issues)
    after checking for duplicates.  Include in your report:
    - the following diagnostics
    - file 1.2.3_b36
    - and if possible, the source file which triggered this problem.
    Thank you.
        else{
    An exception has occurred in the OpenJavafx compiler. Please file a bug at the Openjfx-compiler issues home (https://openjfx-compiler.dev.java.net/Issues) after checking for duplicates. Include the following diagnostic in your report and, if possible, the source code which triggered this problem.  Thank you.
    java.lang.ClassCastException: com.sun.tools.javac.tree.JCTree$JCContinue cannot be cast to com.sun.tools.javac.tree.JCTree$JCExpression
            at com.sun.tools.javafx.comp.JavafxToJava.translateToExpression(JavafxToJava.java:568)
            at com.sun.tools.javafx.comp.JavafxToJava.visitBlockExpression(JavafxToJava.java:2320)
            at com.sun.tools.javafx.tree.JFXBlock.accept(JFXBlock.java:83)
            at com.sun.tools.javafx.comp.JavafxToJava.translateToExpression(JavafxToJava.java:565)
            at com.sun.tools.javafx.comp.JavafxToJava.translateAsValue(JavafxToJava.java:575)
            at com.sun.tools.javafx.comp.JavafxToJava.visitIfExpression(JavafxToJava.java:3595)
            at com.sun.tools.javafx.tree.JFXIfExpression.accept(JFXIfExpression.java:48)
            at com.sun.tools.javafx.comp.JavafxToJava.translateToExpression(JavafxToJava.java:565)
            at com.sun.tools.javafx.comp.JavafxToJava.visitBlockExpression(JavafxToJava.java:2320)
            at com.sun.tools.javafx.tree.JFXBlock.accept(JFXBlock.java:83)
            at com.sun.tools.javafx.comp.JavafxToJava.translateToExpression(JavafxToJava.java:565)
            at com.sun.tools.javafx.comp.JavafxToJava.translateAsValue(JavafxToJava.java:575)
            at com.sun.tools.javafx.comp.JavafxToJava$5.addElement(JavafxToJava.java:3007)
            at com.sun.tools.javafx.comp.JavafxToJava.visitForExpression(JavafxToJava.java:3212)
            at com.sun.tools.javafx.tree.JFXForExpression.accept(JFXForExpression.java:50)
            at com.sun.tools.javafx.comp.JavafxToJava.translateToExpression(JavafxToJava.java:565)
            at com.sun.tools.javafx.comp.JavafxToJava.translateAsValue(JavafxToJava.java:575)
            at com.sun.tools.javafx.comp.JavafxToJava.translateNonBoundInit(JavafxToJava.java:1861)
            at com.sun.tools.javafx.comp.JavafxToJava.translateDefinitionalAssignmentToValueArg(JavafxToJava.java:1876)
            at com.sun.tools.javafx.comp.JavafxToJava.translateDefinitionalAssignmentToSetExpression(JavafxToJava.java:1917)
            at com.sun.tools.javafx.comp.JavafxToJava.visitVarScriptInit(JavafxToJava.java:1976)
            at com.sun.tools.javafx.tree.JFXVarScriptInit.accept(JFXVarScriptInit.java:67)
            at com.sun.tools.javafx.comp.JavafxToJava.translateToStatement(JavafxToJava.java:598)
            at com.sun.tools.javafx.comp.JavafxToJava.translateToStatement(JavafxToJava.java:628)
            at com.sun.tools.javafx.comp.JavafxToJava.visitBlockExpression(JavafxToJava.java:2306)
            at com.sun.tools.javafx.tree.JFXBlock.accept(JFXBlock.java:83)
            at com.sun.tools.javafx.comp.JavafxToJava.translateToStatement(JavafxToJava.java:598)
            at com.sun.tools.javafx.comp.JavafxToJava.access$700(JavafxToJava.java:89)
            at com.sun.tools.javafx.comp.JavafxToJava$FunctionTranslator.makeRunMethodBody(JavafxToJava.java:2164)
            at com.sun.tools.javafx.comp.JavafxToJava$FunctionTranslator.methodBody(JavafxToJava.java:2224)
            at com.sun.tools.javafx.comp.JavafxToJava$FunctionTranslator.doit(JavafxToJava.java:2279)
            at com.sun.tools.javafx.comp.JavafxToJava.visitFunctionDefinition(JavafxToJava.java:2292)
            at com.sun.tools.javafx.tree.JFXFunctionDefinition.accept(JFXFunctionDefinition.java:93)
            at com.sun.tools.javafx.comp.JavafxToJava.translateGeneric(JavafxToJava.java:500)
            at com.sun.tools.javafx.comp.JavafxToJava.translate(JavafxToJava.java:509)
            at com.sun.tools.javafx.comp.JavafxToJava.visitClassDeclaration(JavafxToJava.java:1261)
            at com.sun.tools.javafx.tree.JFXClassDeclaration.accept(JFXClassDeclaration.java:141)
            at com.sun.tools.javafx.comp.JavafxToJava.translateGeneric(JavafxToJava.java:500)
            at com.sun.tools.javafx.comp.JavafxToJava.translate(JavafxToJava.java:521)
            at com.sun.tools.javafx.comp.JavafxToJava.visitScript(JavafxToJava.java:1147)
            at com.sun.tools.javafx.tree.JFXScript.accept(JFXScript.java:89)
            at com.sun.tools.javafx.comp.JavafxToJava.translateGeneric(JavafxToJava.java:500)
            at com.sun.tools.javafx.comp.JavafxToJava.translate(JavafxToJava.java:517)
            at com.sun.tools.javafx.comp.JavafxToJava.toJava(JavafxToJava.java:691)
            at com.sun.tools.javafx.main.JavafxCompiler.jfxToJava(JavafxCompiler.java:728)
            at com.sun.tools.javafx.main.JavafxCompiler.jfxToJava(JavafxCompiler.java:699)
            at com.sun.tools.javafx.main.JavafxCompiler.compile2(JavafxCompiler.java:785)
            at com.sun.tools.javafx.main.JavafxCompiler.compile(JavafxCompiler.java:685)
            at com.sun.tools.javafx.main.Main.compile(Main.java:624)
            at com.sun.tools.javafx.main.Main.compile(Main.java:312)
            at com.sun.tools.javafx.Main.compile(Main.java:84)
            at com.sun.tools.javafx.Main.main(Main.java:69)
    ERROR: javafxc execution failed, exit code: 4
    D:\work\javaFX\javaFX_workspace\Book_fix\nbproject\build-impl.xml:143: exec returned: -1Any one please help

    - This is a real bug in the compiler, obviously. I wonder if I haven't meet it already, or something similar. Maybe you should report it.
    - The problem is that your code is incorrect anyway: the branch with continue doesn't return a value, so cannot be used in the list building. Well, at least that's what I suppose which confuses the compiler. You can try and return null (which will be discarded) instead of using continue.
    - But your code can be much more efficient, compact and perhaps even more readable, using the powerful JavaFX sequence comprehension:
    var seqMixed = [ 1, "one", Text { content: "Ichi" }, Circle {}, 2, "two", Text { content: "Ni" } ];
    println(seqMixed);
    var seqFiltered = seqMixed[ obj | obj instanceof Text ];
    println(seqFiltered);
    seqFiltered = seqMixed[ obj | not (obj instanceof Text) ];
    println(seqFiltered);

  • Java(FX) Property Compiler

    Hi!
    We implemented a small Java(FX) Property Compiler which enables you to use a powerful PropertyHint-annotation. The "compiler" is implemented as an Post-"Java Compiler"-Bytecode-Modification-Tool (using asm-4).
    Here are 3 small example so you can get the idea.
    First Example
    public class Case1 {
        @PropertyHint public String one;
        public enum Two { Zero, One, Two }
        @PropertyHint public Two two;
    }If you compile this class with Java Compiler and the Property Compiler you get the following byte-code-equivalent (I used Java Decompiler to reflect the code):
    public class Case1
      public String one;
      public Two two;
      private SimpleObjectProperty<Two> _twoField;
      private SimpleStringProperty _oneField;
      @Property(writeable=true, name="two", dataSignature="Lde/chimos/property/test1/Case1$Two;", dataSignatureGeneric="", humanReadableName="")
      public final ObjectProperty<Two> twoProperty()
        if (this._twoField == null)
          this._twoField = new SimpleObjectProperty(this, "two");
        return (ObjectProperty)this._twoField;
      private final Two _getTwo()
        return (Two)twoProperty().getValue();
      @XmlElement
      public Two getTwo()
        return _getTwo();
      private final void _setTwo(Two value)
        twoProperty().setValue(value);
      public void setTwo(Two value)
        _setTwo(value);
      @Property(writeable=true, name="one", dataSignature="Ljava/lang/String;", dataSignatureGeneric="", humanReadableName="")
      public final StringProperty oneProperty()
        if (this._oneField == null)
          this._oneField = new SimpleStringProperty(this, "one");
        return (StringProperty)this._oneField;
      private final String _getOne()
        return (String)oneProperty().getValue();
      @XmlElement
      public String getOne()
        return _getOne();
      private final void _setOne(String value)
        oneProperty().setValue(value);
      public void setOne(String value)
        _setOne(value);
      public static enum Two
        Zero, One, Two;
    }The fields "public String one" and "public Two two" are still in there to keep the Java Compiler (representing the first pass of the compiling process) working. It is possible to configure the Property Compiler via a setting called "dummyFields".
    All references to these fields (dummy fields) are replaced by getter and setter calls. As you can see in the next example.
    Second Example
    This is what you type and compile:
    public class Main {
         * @param args the command line arguments
        public static void main(String[] args)
            Case1 case1 = new Case1();
            case1.one = "Test";
            case1.two = Case1.Two.Two;
            System.out.println("case1.one = "+case1.one);
            System.out.println("case1.two = "+case1.two);
            Case3 case3 = new Case3();
            System.out.println("case3.one = "+case3.one);
            case3.update();
            System.out.println("case3.one = "+case3.one);
            Case4 case4 = new Case4();
            case4.one = Case4.One.Two;
            System.out.println("case4.one = "+case4.one);
            case4.one = Case4.One.Zero;
            System.out.println("case4.one = "+case4.one);
            Case5 case5 = new Case5();
            case5.one = Case5.One.Two;
            System.out.println("case5.one = "+case5.one);
    }This is what you really get (reflected via Java Decompiler):
    public class Main
      public static void main(String[] args)
        Case1 case1 = new Case1();
        case1.setOne("Test");
        case1.setTwo(Case1.Two.Two);
        System.out.println("case1.one = " + case1.getOne());
        System.out.println("case1.two = " + case1.getTwo());
        Case3 case3 = new Case3();
        System.out.println("case3.one = " + case3.getOne());
        case3.update();
        System.out.println("case3.one = " + case3.getOne());
        Case4 case4 = new Case4();
        case4.setOne(Case4.One.Two);
        System.out.println("case4.one = " + case4.getOne());
        case4.setOne(Case4.One.Zero);
        System.out.println("case4.one = " + case4.getOne());
        Case5 case5 = new Case5();
        case5.setOne(Case5.One.Two);
        System.out.println("case5.one = " + case5.getOne());
    }Amazing, right?
    Third Example
    In case you provide a getter or setter it is used automatically:
    public class Case5 {
        public enum One { Zero, One, Two }
        @PropertyHint public One one;
        public One getOne()
            System.out.println("Case5.getOne()");
            if(one == One.Two)
                return One.Zero;
            return one;
    }This is what you get (reflected via Java Decompiler):
    public class Case5
      public One one;
      private SimpleObjectProperty<One> _oneField;
      public One getOne()
        System.out.println("Case5.getOne()");
        if (_getOne() == One.Two)
          return One.Zero;
        return _getOne();
      @Property(writeable=true, name="one", dataSignature="Lde/chimos/property/test1/Case5$One;", dataSignatureGeneric="", humanReadableName="")
      public final ObjectProperty<One> oneProperty()
        if (this._oneField == null)
          this._oneField = new SimpleObjectProperty(this, "one");
        return (ObjectProperty)this._oneField;
      private final One _getOne()
        return (One)oneProperty().getValue();
      private final void _setOne(One value)
        oneProperty().setValue(value);
      public void setOne(One value)
        _setOne(value);
      public static enum One
        Zero, One, Two;
    Sourcecode and documentation
    We published the code as LGPL. The project an more examples are available on http://code.google.com/p/java-property-compiler/source/browse/
    The first draft of documentation is still work in progress (Gerrit is currently working on the documentation).
    IDE integration
    The Eclipse-integration is done via an ant-builder. It works but is not perfect. Apart from the fact that the configuration requires some mouse clicks, you have to manually activate the "auto,clean" trigger. We would like to implement a real builder-plugin. Can anyone help us?
    We tried a Netbeans-integration via "-post-compile", etc.. But that does not work properly. If you try to debug a project which uses the Property Compiler, the post-compiled byte-code is simply ignored and you run the unprocessed bytecode. Any idea?
    JavaFX-Tree Chart
    There is another project called "javafx-treechart": http://code.google.com/p/javafx-treechart/wiki/TreeChart
    Gerrit will write about it as soon as the documentation is online.
    Regards, Niklas
    Edited by: Niklas on 28.11.2011 16:23

    Hi all!
    Thank you for your responses and comments!
    Sorry for the late response. I am in Australia on vacation at the moment (just visited Brisbane and Whitsundays - and I am going to visit Sydney tomorrow :-).
    @zonski:
    Lombok is really a masterpiece. I had a look at the code. They use AST and (if I'm not mistaken) byte code manipulation too. I think we can learn a lot from Lombok.
    The IDE integration of Lombok is kind of black magic - my personal point of view. I simply don't like those Eclipse API interceptions which are implemented in the Eclipse agent. I rather stick to standard interfaces - like a custom Eclipse-Builder, etc... (I still don't know the Netbeans-way, but I am going to figure that out).
    This is one of the reasons why I decided to use the (awesome) Lombok source code as inspiration, but not to use my resources at hand to extend Lombok itself.
    Further reasons:
    a) We developed a different annotation philosophy (not implemented yet but we are going too).
    b) I developed a small "deterministic destructor" mechanism based on byte-code manipulation and some (important) variable assignment restrictions - to keep performance up and avoid side effects. We want to provide an annotation for this mechanism.
    We probably stick to byte code-manipulation. Not sure if we use AST (makes IDE integration very hard - see Jonathan Giles' comment).
    @bouye:
    I understand the concerns regarding "manual code tweaking", but I really hate the property boilerplate code - it results in unreadable source code. Our implementation still allows custom implementations of getter and setter in case you want to tweak your code. We extended our concept to allow even more flexibility (not implemented yet).
    @Richard Bair:
    I agree, developers might be confused if the know plain java and have no idea about the magic going on. But this is a matter of documentation and communication. If you know the concepts and the tools the code is easier to read.
    I agree with you that Java really needs native property support. The annotation solutions are just placeholder solutions.
    @Jonathan Giles:
    IDE support is definitely an issue. That’s the reason why I want to stick to byte code manipulation. You can integrate the required build steps in Eclipse easily (still not sure about Netbeans). Using AST requires a lot of black magic as you can see in the Lombok source code.
    Actually I had absolutely no debugging issues with our approach if we talk about Eclipse. If there is a way to hook into the Netbeans build process properly it shouldn't be a problem either. Of course the injected code needs to be crafted and tested carefully (no surprises policy).
    The next version of our post-compiler will be splitted in two parts. The first part can be used within the regular build process and does a lot of modification (probably based on the ASM tree API). The second part gets called from a class loader and performs some final tweaks, e.g. dropping unnecessary fields (based on the fast ASM core API). In case the loaded class file did not pass the first part (detected while loading), it is entirely processed within the loading sequence. This should avoid surprises. The post-compiler can be restricted to specific namespaces.
    Our current big commercial project is going to depend heavily on the post-compiler. We decided to provide the post-compiler as open source as we want to contribute to the Java community.
    I'll keep you posted!
    Niklas

  • MDM to Syncronize Suppliers Master, Materials Master and Service Masters

    I'm in charge of MDM in a big Holding, today we have custom systems to ensure the quality of these masters and synchronize between them.
    In the tree scenarios (Materials, Suppliers, Services) we have a content approval workflow and tools to improve content's quality. Apart from this we synchronize the content with tree SAP R/3 and with other systems.
    We have a lot of problems with the backend field's validations, for example, when I synchronize a Supplier that is from USA the R/3 validates the NIF number format (from customizing settings), but our application maybe has another validation and the supplier is rejected by R/3.
    My Questions are:
    Can MDM manage approval workflows per each master data with different roles?
    Can MDM synchronize Masters Validations from customizing? To avoid differences between MDM’s validations.
    Is possible with MDM improve the materials content? With for example some custom business’ rules.
    I'm sorry my English, I hope that this was clear.
    Thanks in advance,
    Best regards,

    Hi Sebastian,
    To be able to provide you with in-depth information, your business scenario needs to be analyzed in more detail. However, I can give you some general statements:
    The current focus in SAP MDM is on "Business Partner" and "Product" master data, and SAP MDM generally supports the concept of approval workflows.
    SAP MDM incorporates the SAP Solution Manager for comparing and distributing synchronized Customizing settings (between Master Data Server and different SAP R/3 or CRM systems connected as Master Data Clients).
    The MDM scenarios are generally aimed at improving data quality in a heterogeneous landscape, including Product data.
    For more detailed information, please contact your SAP contact or send your request directly using http://www.sap.com/contactsap/.
    Best regards,
    Markus
    Message was edited by: Markus Ganser

  • Help with setting the POV of a new sheet.

    Hello,
    I am trying to set up a new sheet from scratch utilizing the VBA API tools in Smart View v9.3.1.2.041. I have noticed the "hypsetpov" function, but am seeming to have a few troubles with it:
    0) (added). Is there a way to use hypGetPOV to determine the POV of an spreadsheet and not just the selected cell? In other words, how can you determine the POV for a sheet?
    1) I do not know how to select a 2nd level child in a Dimension. Example: I want to select PLAN_v_ACT as my only POV for the scenario dimension. hypSetPOV sheetName, "Scenario#PLAN_v_ACT" doesn't seem to work?
    2) I want to be able to select 2 members of a dimension. Example: I want to select Actual and Budget. How do I do this?
    Example tree:
    Scenario
    ..|---- Actual
    ..|---- Budget
    ..|---- Variances
    ..........|---- PLAN_v_ACT
    ..........|---- WORKING_PLAN
    Thank you in advance!
    Edited by: user1679285 on Sep 28, 2009 3:18 PM

    Using:
    var this[newTxt]:TextField = new TextField()
    is the right approach.
    You can either incrment an instance variable so that the name
    is unique:
    newTxt = "MyName" + _globalCounter;
    var this[newTxt]:TextField = new TextField();
    globalCounter ++;
    Or store the references in an array:
    _globalArray.push(new TextField());
    Tracy

  • Can't browse the Active Directory from ACS 5.1

    Hi,
    we just joined our ACS 5.1 to our Active Directory 2003, the system seems correctly joined on the ACS we have as connectivity status: joined and if we try it with the test button we get "connection succeded", on the AD tool we notice that an computer account for our ACS have been created.
    We wanted to created the Directory Group but the browsing tool is empty and any query does not give any output.
    The ACS is joined but we're not able to browse the Active Directory.
    Any suggestions what could be the problem?
    Thank you.

    This is an on-going issue due to below mentioned defect.
    CSCtf39158 -Can't retrieve AD groups in single forest with multiple trees scenarios
    You need to apply Patch 3 to get this fixed
    filename: 5-1-0-44-3
    Download from: CCO / Support / Download Software  http://www.cisco.com/public/sw-center/index.shtml
    Select: Security / Identity Management / Cisco Secure Access Control  System / Cisco Secure Access Control System 5.1 / 5.1.0.44
    ##Steps to create repository##
    Go to the CLI mode of this ACS
    Create a repository (it's basically defining FTP server)
    AAA/admin(config)# repository FTP ---> (could be any name)
    AAA/admin(config-Repository)# url ftp://
    AAA/admin(config-Repository)# user password plain
    ===============================
    Steps to Install the ACS 5.1 patch:
    ===============================
    Issue the following acs patch command in the EXEC mode to install the ACS patch:
    acs patch install patch-name.tar.gpg repository repository-name
    Rgds.
    JK
    Do rate helpful posts-

  • Display tree hierarchy in adobe print form scenario

    Hi
    Can someone suggest what is the best way to create a tree structure in adobe print scenario ? can we display icon also next to the text in the tree. For example I want to get folder and file icons also along with their names in hierarchial manner.
    Regards
    vishal

    hi,
    to populate the dropdown list you can do it...
    1). manually or 
    2). by code
    1). <b>manually</b> go to interactive form->edit
         go to Object tab->field tab ->
         you must see something like
         List Items :
         Text     + x
         click on the green + sign...
         it promps you to type. type in the value press enter... and so  on...
    2) <b>by Code...</b>
        //set up contents of a drop down list dynamically...
        IWDAttributeInfo countryInfo = wdContext.nodeTravelData().getNodeInfo().
                getAttributeInfo().getAttribute("DestinationCountry");
        ISimpleTypeModifiable countryType =
                countryInfo.getModifiableSimpleType();
        IModifiableSimpleValueSet countryValueSet  =
                countryType.getSVServices().getModifiableSimpleValueSet();
        countryValueSet.put("1","Germany");
        countryValueSet.put("2","UK");
    This will work....
    regards,
    -amol gupta

  • JavaFX for database driven applications? No Tree or Table components?

    Hi there,
    Most of the apps I do are database driven and require liberal use of tables and tree components. I see these are missing from JavaFX.
    So the questions I have are:
    Will they be introduced later?
    How does one create custom components for JavaFX?
    Are there any 3rd party components that offer this yet?
    thanks

    You can find an example of the Table component creation and usage on page:
    [http://jfx.wikia.com/wiki/SwingComponents|http://jfx.wikia.com/wiki/SwingComponents]

  • Is JavaFX the right solution for this scenario...

    Hi,
    Is JavaFX the right choice for the following implementation choice I have to make? (see below for the requirement)
    Requirements:
    1. Provide a way to visualise within a web application an entity relationship type diagram (i.e. nodes with relationships between them). The backend database will hold the topology relationship. So to visualise this on a web application will need the ability to draw rectangles/lines/text etc.
    2. Provide a way to allow the use to trigger "add a new node", or "edit info in this node". For example a right hand context sensitive menu for example.
    3. Ideally will scale as the user resizes the browser window
    4. Would like the main functionality of the application to remain web based (is a Ruby on Rails application in fact), but have the visualization of the diagram render within the web application as transparently as possible.
    Options / Issues:
    * Issues I've struck with some investigation I've done is that whilst the <canvas> tag looks good for Mozilla/Firefox etc, it does not seem to have support on InternetExplorer. Hence cross-browser compatibility seems to be a real issue for the JavaScript type solutions from what I can see. This is why I thought JavaFX may be good?
    * Options therefore seem to me to be:
    - javascript (e.g. <canvas> tag) => cross-platform issue
    - JavaFX / Applet => (this is what I'm asking about)
    - Microsoft => costs $$ for development environment etc
    - AIR / Flex / Flex => ??? costs $$ again I think
    Regards
    Greg

    thanks - I'm still a little confused re their products and which would fit best so I've sent them some questions (below if you're interested)
    Hello,
    Could you please assist me in understanding which of your products would satisfy my needs. In fact (a) whether JGraph itself would and if not, or if it's not ideal, (b) which other product would.
    REQUIREMENTS:
    1. Provide a way to visualise within a web application a connectivity type diagram (i.e. nodes with relationships between them, a network connectively type of diagram).
    2. The server side (i.e. web application with database) will hold the topology relationship. HTTP type interfaces off the web application can be developed to provide the client side visualizing component with the topology data in the required format (assume this is XML)
    3. As well as just visualizing in the browser there would need to be a way for user to trigger a context sensitive "add a new node", or "edit info in this node". For example a right hand context sensitive menu for example.
    4. Ideally the diagram will scale as the user resizes the browser window
    5. Would like the main functionality of the application to remain web based , but have the visualization of the diagram render within the web application as transparently as possible. The the visualizing component would just take topology data and intelligently display this.
    6. DESIRABLE: Basic automated layout would be nice, or as a desirable (depending on cost) more sophisticated auto-mated layout.
    QUESTIONS:
    As well as your recommendation re which product would suite I had some specific questions which I would appreciate clarification on:
    Q1 - I assume if I have a web backend that can deliver topology inforrmation in an appropriate XML format via a HTTP REST type GET call that this could be used as a the source of data for a jGraph visualisation running within an Applet?
    Q2 - If running within an Applet, can jGraph cater for a right hand menu option off the nodes/links on the graph, that I could use to trigger other calls back to the backend? (e.g. to trigger an Add New Node call)
    Q3 - Following on from Q2 scenario, if I trigger an add new node scenario, if I wanted to visualise the form to type in the attributes for the new node, could this be handled within the applet by jGraph, or would this be a case of just adding your own Swing based dialogs to handle this?
    Q4 - Do the basic JGraph do any basic layout without having to go up to the layout Pro package (which I think costs if using it commercially).
    Q5 - If the answer to Q4 is No, how difficult would it be using the base JGraph library to do a basic layout? Is this doable/recommended? i.e. how would one "layout" the diagram if using only the base JGraph component? (noting from my requirements I'm really after a component I could send my topology information to in XML form and have it just visualise it for me)
    Q6 - Running the visualiation in an Applet in a browser, is the typical usage one where all changes to topology are made as calls to backend? i.e. or is there an approach where one would allow users to make changes to the topology within the applet and build up all the changes here on the client, and then at some point synch these back to the backend? (I'm assuming the keep it simple approach would be not to do this)
    Q7 - Is there a sample application/project with source code that implements a JGraph in applet/browser talking to web backend for data?
    Q8 - How does JGraphPro & mXGraph fit into the picture re solving my requirements in the most cost effective manner

  • Checkbox Tree in JavaFX

    Does anybody has an idea where I find an example for a checkbox Tree? Thx

    There is no Checkbox Tree control in JavaFX (as of now). I've written one long time back in Java. You could adopt it to use in JavaFX as a swing component.
    [http://winstonprakash.com/sources/java2html/tree/JCheckBoxTree.java.html]
    [http://winstonprakash.com/sources/java2html/tree/JCheckBoxTreeTester.java.html|http://winstonprakash.com/sources/java2html/tree/JCheckBoxTree.java.html]

  • Rendering in JavaFX

    Hi,
    I am currently working on my bachelor thesis about JavaFX 2
    I have a few questions about rendering in JavaFX
    I don’t really understand what the glass toolkit is for and how it’s connected to prism.
    If the glass toolkit is firing the pulse event how does prism know that it has to render a frame?
    And how does the Quantum Toolkit handling the threads?
    And what is the advantage of having two threads (Application and Prism Render Thread) instead of one like in Swing?
    I haven’t found much about rendering in the documentation so please help me. :)

    Hi David,
    Glass is to FX as AWT is to JavaSE. Sort of :-). Glass is our windowing toolkit implementation. It is responsible for showing windows (including Stage, Popup, etc), managing the event queue, passing events up to JavaFX, and setting up timers. Every native application (on Windows, Mac, Linux, etc) has a native event queue. On some platforms like Mac, you get callbacks called whenever an event needs to be handled (that is, the native system pumps the event queue and delivers events to native callback methods). So on Mac Glass, we get these native callbacks, turn them in to JavaFX events, and send them to JavaFX (more or less). On Windows we have to manually pump the event queue, pulling off the event, creating the JavaFX event equivalent, and then pass that up to JavaFX for dispatching.
    Pulse events are normal events on our event queue, but they are generated based on a timer. Glass sets up a timer which fires off every 16.666ms. It is either based on just a hi resolution system timer (native), or it is based on a callback from the OS whenever the video card refresh occurs. This latter mechanism is much more precise, system timers can sometimes drift leading to "jitter" in animations whereas the video card refresh is pretty rock solid. When JavaFX gets notified by glass when the timer fires, it checks to see: is there a pulse already queued up or being handled? If so, don't fire another pulse (keeps us from flooding the event queue with pulses). If the scene is not dirty and there are no animations, then we don't need to handle the pulse. Otherwise if the scene is clean but there are animations, then we handle the pulse. A PulseEvent is then created and put on the event queue.
    During the normal process of handling the events on the event queue, when we encounter a pulse event, we then do the following things:
    - Process animations
    - Process CSS
    - Process Layout
    - Synchronize from the FX scene graph to the render tree (Prism)
    - Pick the scene and update the mouse hover state if a node has moved under the cursor or moved out from under the cursor
    The render thread then goes off and renders after the synchronization step has occurred.
    Quantum is the thing that listens to Glass pulse timer events and creates the PulseEvent and adds it to the event queue, and is also the thing that handles the pulse event, causing animations to be processed and then telling each scene to handle the pulse event (where each scene processes CSS, layout, and synchronizes etc). Quantum then tells the render thread to go off and render.
    Presently in JavaFX, although we have a render thread and application thread, they both essentially run synchronous. I have a patch going into 3.0 as soon as the repo opens that allows us to run multithreaded, where the FX app thread and render thread will be running in parallel except for the brief period of time where they synchronize during the pulse. We have seen 1.5x - 2x performance improvement on tablets by running these threads in parallel. We've also noticed 40%+ performance improvement on desktop in some of the scenarios I've run thus far. Having multiple threads just makes sense in a world where we have multiple cores (even on embedded systems!). Even on a single core, multiple threads might still be advantageous because the CPU doesn't have to wait on memory read operations or GPU operations but can be busy computing the state for the next rendered frame. Having multiple threads does increase the memory overhead, but actually it may not do so very significantly (we have one prototype where we found that the performance cost in constantly converting from FX Color to native Color objects was so bad that caching the converted color object was cheaper anyway, so it isn't clear that even in an immediate-mode style single-threaded rendering system that you'd save much in terms of memory).
    I don't know when your thesis is due by, unfortunately a lot of code in this area hasn't been open sourced yet so you're kind of flying blind. May the decompiler ever guide you ;-)

Maybe you are looking for

  • Opening App in own new Window - Opinions please

    Dear Community! I would like to invite you to share your opinions on this idea - foremost in terms of user experience, but also technical implementation: Like anybody I always have a number of browser-tabs open, but as an apex user (not developer) I

  • How do I change Excel calendar template for it to be 1st April to 31st March

    Would appreciate some help on this one. From Office.com Templates I've downloaded the calendar "Family calendar (any year, Mon-Sun) I've changed the layout so that it runs on the financial year from 1st April to 31st March. But I'm struggling to ge

  • Turn off Duration in Aggregator?

    Is it possible to turn off the Duration in aggregated projects? WE are giving an estimated time to complete a module at the beginning of the module. But in the aggregated project, the duration times do not reflect the ACTUAL time it would likely take

  • File name completion in Solaris 8 (SPARC)

    I am running Solaris 8 on an old SPARC-20 using the C shell. File name completion will not work for root or any other users. I have verified that all are setup with the C shell by using echo $SHELL. Other C shell features (aliases, command history, e

  • Can we call wizard from another wizard

    Hello Everyone, Can we call wizard function module from another wizard function module? i tried to call, but the road maps and the documentation part of the screen is gettting overlapped. Are there any parameters to be changed that the wizards can be