JavaFX 2.0 :: Synchronize Model Representing Complex UI Composite With FlowPane Backing List
Aug 26, 2014
What is the best way to synchronize a Model representing a complex UI composite w/ a FlowPane's backing list?
Currently I have a change listener on the Model. Upon an add I create a new UI composite and manually add it to the FlowPane's backing list via flowPane.getChildren().add(). Similarly if there is a remove, I iterate over the FlowPane's children, grab the right Node, and remove it. Similarly, if there is a modification detected, I iterate over the FlowPane's children, grab the right Node, remove it, recreate the UI composite, and re-add it to the list. I also need the list to be sorted, so I implemented a UIComposite comparator and call FXCollections.sort() on the FlowPane's backing list. I feel like that is hacky, but it works. It would be cool if I could maintain sort order in my model somehow and have that automatically propogated to the FlowPane's list.
I am correct in assuming that there is no way to have a complex binding in between an ObservableList<CompositeViewModel> and the FlowPane's backing list (ObservableList<T>)?
Some kind of translator that could create a new UIComposite whenever there is a new CompositeViewModel added to the Model list.
I have seen in some examples like URL... a good design is to have the model and the action methods in one just single bean and the model not to be a separated class but a few properties like this:
public class CustomerBean implements Serializable{ //DI via Spring CustomerBo customerBo; [b]public String name;[/b] [b]public String address;[/b] //getter and setter methods
[code]...
Some questions:
1. If you are using hibernate or any other ORM like the above example(URL...), why not to use the hibernate pojo bean directly like it represented the form instead of using properties?:
public class CustomerBean implements Serializable{ //DI via Spring CustomerBo customerBo; [b]Customer customer;[/b] //represents the properties of a form //getter and setter methods public void setCustomerBo(CustomerBo customerBo) { this.custom
2. Why is it said that JSF represents the purest MVC? Spring separates the model from the view too and Struts does too. I dont really understand it
I trying to make a file browser but when i try to add item to a FlowPane through me an error at runtime, look at this code if i add label with imageView when there are more than x ítem the error appear.
But if i add the label and the imageView alone the error didn't show. Ihave folder in my pc with more than 1200 file and the error always appear. Is there a way to make a flowpane or tilepane hold enough items?
I am following those three tutorials and I have completed it with success.
( [URL] .... ) ( [URL] .... ) ( [URL] .... )
But then, as author haven't implemented removeCountries method I tried to create it. What I did initially was to just add to class Countries this method:
public boolean removeCountry(Country country) { return countries.remove(country); }
But although compiler wasn't complaining it didn't work. Actually it worked last night (before reboot) but not today. Must be some SOAP iterator/binding thing or whatever. Or I thought that it worked but in fact it didn't.
Here are original classes:
//------------------------------- public class Country { String CountryId; String CountryName; public Country() { super();
[Code] ....
I would like to avoid my own iterator as JDeveloper can generate automatically iterators for webservices, but if I can't get it that way, what would be better way to write above mentioned iterator in removeCountry method?
Is there any way to remove object directly with something like this:
co.countries.remove(o); co.removeCountry(country)
using method
// This left unused public boolean removeCountry(Country country) { return countries.remove(country); }
I have tried to implement MultipleSelectionModel with mostly success in TreeView, but definitely with quirks. I've looked at the implementation in TreeView and it's off putting to say the least. Hopefully it doesn't need to be that complicated. For now, all I need is it to handle SINGLE SELECTION, but it needs to be solid. I've put in a lot of println's to see what gets called. Most don't seem to be called. I'm relying on TreeView to look up the object being selected, I'm not sure if that's appropriate. The internal implementation seems to worry about tree state a lot.
It baffles me as to why there isn't a base class from which to extend or reuse? I'm doing this so I can delay a selection (make it vetoable), also to handle drag/drop more cleanly (so target won't move because of drag action).
private class VSelectionModel extends MultipleSelectionModel { List<Integer> baseSelectedIndexes = new ArrayList<>(); ObservableList<Integer> selectedIndexes = FXCollections.observableList(baseSelectedIndexes); List<Object> baseItems = new ArrayList<>(); ObservableList items = FXCollections.observableList(baseItems);
Sometimes models needs to access blocking devices, like network cards, databases, files, and so on. This should be done by worker threads or services. But who is in charge of that? The controller or the model itself? I tend to say it is the model, as only the model knows about the fact that it accesses a blocking object. On the other hand, it is said that a model should be a POJO, so it would be the controller's job. Is there a best practice or general design rule?
Say I was to make a computer game, the first person to play the game would have a joinable game and would then be the server, and anyone joining in would be the client and the server was updated with JSON data of the clients computer game, and the server would then update each client of each characters new data using JSON, I would need fast multi threaded connection handling with minimum overhead, Is there a specific way to do this? or are there many?
I have realized there are a few ways to send and receive data using UDP and while experimenting I have also found its quite hard to synchronise.
Do I have a connection listening until there is data to be sent and then switched back to listening?
Do I have the server listening for a microsecond and then checking to see of there's anything to send for a microsecond continuously?
Do I have multiple connections for sending and receiving
Do I create new connections for each new and individual packets to be sent and received dynamically on a thread?
What is the optimum most effective way and do my examples reflect much understanding at all? my resent attempts create new problems and rather than re invent the wheel I would like to know what is normally done.
I don't know how to define "abs." Here are the instructions:
The purpose of this exercise is to add to the IntClass class below a method, abs, that takes as its only argument an IntClass object and returns a new IntClass object representing the absolute value of the argument.
Define the desired method as a class method.
Define the desired method as an instance method.
In each case, use the main method to test your code.
There's two boxes of editable code. I'm having trouble with the first one, the one with "abs."
Here is more code:
My code goes here
}
Here's another box of code that they want me to fill out:
public class MainClass { public static void main( String[] args ) {
Our company has a web based project which using the Jboss EAP 6.1 +EJB 3.1 + JSF2 and deployed it in a cluster environment(Server A,Server B and Server C).We have created some schedule tasks by using EJB timer service and the timer data file is stored in a central file system.And users can login and access to a task configuration page to customise his own tasks by create,update,delete actions etc.But we find that the timers don't work correctly in the cluster environment.
For example.When we start the Servers(A,B,C),each server will load the timer file data into his own node cache from the central file system.But when one user go to the task configuration page to update or delete his own tasks from one of the Servers, it only update the change on its own node cache and don't replicate the timer data to other nodes' cache and which cause the problem.
I know there is one way to fix it is that we could shutdown the three Servers and re-boot them and the timer data file will be re-loaded into each server's cache. But we can't do that because the users want their own created/updated tasks take effect immediately once they change them.My question is that when the timer data in cache is updated on one server, how to make it synchronize to the other Servers'.
In a java application project called mycomposites, i created xhtml with a composite component interface and implementation in mycomposites/ src/ main/resources/testcomponents/myComponent.xhtml...Then I created a new project testmycomposites added mycomposites as dependency. Here is the source of an xhtml that should use myComponent:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
[code]...
However running project, I get error:<tp:myComponent> Tag Library supports namespace: http://java.sun.com/jsf/composite/testcomponents, but no tag was defined for name: myComponent
If i put the same custom component in resources/testcomponents folder of the same project everything works fine.I can't find any example in wich custom composite components are located in a dependency.
I have to create a new custom tag "imageLabeable" as a div contains a GraphicImage and an OutputLabel (primefaces).
Since I want to make it reusable as much as possible, I tried to write, in cc:interface section, all GraphicImage attributes (id, value, binding etc) and some new (GraphicImage is the main component among the two). But after that I have must associate GraphicImage attributes with the attributes created in cc:interface:
As you can see, if I have a lot of attributes I have to write a lot of association. Furthermore, if I see html rendered code with Firebug or similar, I see all of these associations.
Can I inherit these attributes automatically? Or associate it in easier way?
I am using a command button to post a form to backing bean method. At the end of that method I am attempting to redirect to an external site after setting various options in the response. I get an IllegalState Exception because of the redirect.
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendRedirectWithStatusCode (WebAppDispatcherContext.java:571) at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendRedirect (WebAppDispatcherContext.java:528) at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendRedirect(SRTServletResponse.java:1234) at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:426) at com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:181)
here is the problem code from the backing bean method:
I am trying to write a java application that displays composite numbers between 1 and 100. Here is the format of my code:
//a java application that prints out composite numbers that range from 1 to 100 public class printcomposites{ public static void main(String[] args){ int num=0; int i=0; String printcomposites=""; for(i=1; i<100; i++)
[code]...
My code compiles with no errors, but my code generates every integer between 1 and 100 instead of integers that are composite:
Release 8u40 introduces the TextFormatter concept in the text input field area. It is currently a new property of the TextInputControl class. This is definitely a more elegant way to deal with validation than overriding "replaceText(...)".
Shouldn't this property also be available in list, table and tree cells? Are there plans to do this (before we make our own implementation) ?
I would like to create list of entities which is populated by a search function with the data coming from our REST webservice. However I would like it to be multi-line, with the first line being details from the entity itself and the second line buttons for options that can be performed.
So as an example say my entity is People, the first line would contain columns for first name, last name, gender, DOB, etc. The second line would be buttons for "Edit Person", "Print Person details". With the standard TableView I can't see anyway to alternate between one row of data and another row of buttons.
A complex number is defined as z=a+i*b, where a is the real part, and b is the imaginary part. In other words, in order to define a complex number, we need the two floating numbers a and b. Write methods that perform for each of the following operations with complex numbers z1 = a1 + i*b1, and z2 = a2 + i*b2:
Create a test program that asks for the real and imaginary parts of two complex numbers from the user, and displays the results of the four operations, writing the formula as shown above, and replacing the a1, a2, b1 and b2 with the numbers entered by the user.The professor used the incorrect complex number equations and has notified the students of his error. I have run into a few problems thus far.
1. I'm not sure how to use floating numbers with the Math.pow(double, double) function, since its requires doubles!? So instead of using floating numbers, I've knowingly switched them all to double in order to see if the code itself is working properly for the purposes of this forum. Is there a way that I can modify this function so that it will work for floating numbers?
2. Regarding the division method, an error stating that c and d have not been initialized and I'm not sure how to change it because the other calculation methods work fine. Why do I need to initialize c and d in the division method and not the others?
3. Am I on the right path? I have surfed the web to see how others completed the program and they all appear very different than mine...
package program5; import java.util.Scanner; public class Program5 { static double a, b, c, d; static double i = Math.pow(-1,1/2);
public class Main { public static void main(String[] args) { Player[] playerList = new Player[] {new Player("Daniel", 3, 3, 2, 1, 1, 3),new Player ("Player2", 2, 4, 1, 6, 3, 2)}; System.out.println(Player.getPlayer()); } } mh_sh_highlight_all('java');
[code]....
and whenever I run it, it prints out the last player, so I was wondering how to identify them separately, but still use the array, as (I believe) it is the most efficient way.
I'm trying to figure out a good way to allow my users to have some formatting options within a text box in my application. Ultimately, they need to be able to have text that is alternating between two separate fonts, and ideally could have both italicized and bolded words as well.