OT: Java and Business Entrepreneur
We are a start-up with an innovative advertising platform looking for a Java expert with great business sense and knowledge of Internet Advertising to round out the team. This person should have experience with large enterprise Java web applications and the ability to think creatively and strategically in order to grow the business from the technology. You'll function as a key member of the founding team and help drive the company vision and direction. We've received validation from some key industry players and have some notable names signed up to beta test our product. The web application is built in Java 6 with the following: Spring 2.5, Hibernate 3.2.5, Wicket 1.3.0, various Apache Commons projects and the source is managed via Subversion with Maven 2 handling the builds. This is an equity-based, partnership opportunity, not a 9-5 job. We're looking for that unique person who's got the talent and ambition. To learn more contact me directly: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Drag and Drop DataTable rows
Anyone create a drag and drop reordering component out of a DataTable? I want to reorder the rows via drag and drop. I see the scriptaculous SortableListView, but I would have to significantly change a lot of my pages. Anyone tackle this? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
302 vs. 301 Redirect
When you setRedirect(true), wicket does a 302, temporary, redirect. The basic rule of thumb in SEO is if you want to pass all authority to a different page use 301 (permanent). http://www.seotoday.com/browse.php/category/articles/id/477/index.php Thoughts on adding something to Wicket to support this functionality? - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Matt Raible's ApacheCon presentation
I agree with the Too much java statement. Sometimes you have to create a bunch of stuff that would be a lot easier to do in a velocity template. It only takes a couple of seconds more to do it, but it just makes everything 'seem' bigger. Example would be a link on a table... columns.add(new LinkPropertyColumn(new Model(Delivery), new Model( change)) { @Override public Link createLink(final Item item, String componentId, final IModel model) { return new Link(componentId) { @Override public void onClick() { ReportStatistic reportStatistic = (ReportStatistic) model .getObject(); DraftProduct draft = productService .getDraftProduct(reportStatistic.getReportId()); setResponsePage(new ReportDelivery(draft)); } }; } }); On Thu, 2007-11-15 at 15:02 -0800, Alexis wrote: Pros : * Statefull * Steady features (simple Ajax built-in, validation, ...) * Can do simple stuff quickly without knowing the internals (good for java developpers without web experiences) Cons : * Not stateless (i'm talking about the stable 1.2 here) * Too much alternatives to do quite the same things (markup inheritance vs borders; passing component's constructors models, full objects or even components; ListView vs DataView vs GridView ...) * TOO MUCH JAVA and too component oriented: in fact on some pages you need to create some components (panels, fragment, or inner classes) to write maintenable code whereas these components will never be reused elsewhere. In general you need some effort and focus to produce maintenable code on not so complex pages / components, this is my biggest con. Martijn Dashorst wrote: Pros: * elegant solutions to problems using object oriented programming are possible again * unspoiled (by model2 framework) graduates can create complex UI's almost instantly * you actually need to engage your brain at times * custom component creation is *really* easy: just use extends (tm) Cons: * single threaded model for responding to client actions: a lot is sync'd on the pagemap * you actually need to engage your brain at times * getting to know the internals can be quite challenging as it is a complex beast * too easy to create complex UI's that show the world and then some * sometimes the limitations of HTML/the web leak into the wicket world, making it tougher for new web developers as they are presented with quite an abstraction (keeping state in forms across requests in tabbed panels) Martijn On 11/15/07, mraible [EMAIL PROTECTED] wrote: FWIW, I'd like to replace the pros and cons (my opinions) with some that are more accurate. As users of Wicket, I'd love to hear from you and get your opinions on the top 3 pros and cons of Wicket. Here's the ones I currently have: Pros: * Great for Java developers, not web developers * Tight binding between pages and views * Active community - support from the creators Cons: * HTML templates live next to Java code * Need to have a good grasp of OO * The Wicket Way - everything done in Java IMO, there's no need to debate whether these are valid or not. If they're not - please suggest new ones. James Ward of Flex had a nice and honest comment this morning pointing out Flex's cons: http://tinyurl.com/yvybnm Thanks, Matt Sean Sullivan-3 wrote: fyi http://raibledesigns.com/rd/entry/comparing_jvm_web_frameworks_presentation -- View this message in context: http://www.nabble.com/Matt-Raible%27s-ApacheCon-presentation-tf4815955.html#a13780071 Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Buy Wicket in Action: http://manning.com/dashorst Apache Wicket 1.3.0-rc1 is released Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.0-rc1/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Matt Raible's ApacheCon presentation
Compare the java code to something in velocity/jsp like... href=/path/to/something.jsp?id=${draft.id} ...I know, I know...you really can't compare the 2 because wicket's version can have a lot more functionality easily. But, your ABSOLUTELY POSITIVELY right about paying with maintainability, except you still have to maintain the HTML file, yuck. 99.9% of the time I am very very happy with Wicket and wish that everyone used it. I hate working on JSP/JSF projects because it's the standard and blah blah crap crap. I liked the last Con though. Everything has to be done in Java - I know what you meant, but its still funny. I wish everything could be done in Java, even the design. And I don't mean HTML+CSS, but some magically awesome design engine that would output HTML+CSS. With a Wicket application its A LOT easier to figure out where everything is and how it gets there. OO w00t. Ah, the days of PHP/JSP hell. On Thu, 2007-11-15 at 21:20 -0800, Eelco Hillenius wrote: Example would be a link on a table... columns.add(new LinkPropertyColumn(new Model(Delivery), new Model( change)) { @Override public Link createLink(final Item item, String componentId, final IModel model) { return new Link(componentId) { @Override public void onClick() { ReportStatistic reportStatistic = (ReportStatistic) model .getObject(); DraftProduct draft = productService .getDraftProduct(reportStatistic.getReportId()); setResponsePage(new ReportDelivery(draft)); } }; } }); For the record, this code fragment doesn't look like 'too much Java' to me tbh. The decision to load the draft and redirect to another page could be done in Velocity, but would immediately mean that you pay with maintainability. Eelco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Cache Panel
How would I render the component and stick the contents into a label? If possible, I would like to do something like the following... String render() { String markup = cache.get(); if (cacheExpired || markup == null) { markup = render(); } return markup; } I know there is no String render() method, but this just shows what I would like to accomplish. Thanks! On Tue, 2007-10-23 at 20:00 -0700, Igor Vaynberg wrote: use any cache you want to cache it, and stick the contents into a label -igor On 10/23/07, Joe Toth [EMAIL PROTECTED] wrote: There are some operations that are kind of complicated, rather than dig into those operations and try to cache things, it would be A LOT easier to just stick a cache in front of it all. On Tue, 2007-10-23 at 21:01 -0500, Jeremy Thomerson wrote: The first thing to ask yourself would be if you really need to do that. HTML generation is extremely fast, and generally does not need to be cached. If page generation is taking a long time, it is likely that DB operations or external service operations are what needs to be cached. Was there a particular reason you had in mind for caching the HTML? Jeremy Thomerson On 10/23/07, Joe Toth [EMAIL PROTECTED] wrote: I have a bunch of Panels where the generated HTML can be cached for a period of time. What's the best way to go about doing something like this? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Cache Panel
I have a bunch of Panels where the generated HTML can be cached for a period of time. What's the best way to go about doing something like this? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Cache Panel
There are some operations that are kind of complicated, rather than dig into those operations and try to cache things, it would be A LOT easier to just stick a cache in front of it all. On Tue, 2007-10-23 at 21:01 -0500, Jeremy Thomerson wrote: The first thing to ask yourself would be if you really need to do that. HTML generation is extremely fast, and generally does not need to be cached. If page generation is taking a long time, it is likely that DB operations or external service operations are what needs to be cached. Was there a particular reason you had in mind for caching the HTML? Jeremy Thomerson On 10/23/07, Joe Toth [EMAIL PROTECTED] wrote: I have a bunch of Panels where the generated HTML can be cached for a period of time. What's the best way to go about doing something like this? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Dynamic Entity Classes
Salve is interesting... One problem, user-module does not know about accounting-module. On Wed, 2007-10-10 at 00:30 +0200, Gerolf Seitz wrote: heh, i knew this would come up ;) On 10/10/07, Igor Vaynberg [EMAIL PROTECTED] wrote: with Salve you can do it like this: UserBalance User.getBalance() { return accountingService.getBalance (user); } because your User domain object would have access to accountingService. see http://salve.googlecode.com -igor On 10/9/07, Joe Toth [EMAIL PROTECTED] wrote: This is a Hibernate question, but Eelco's 'class reloading' post reminded me to ask on this list. I asked in the Hibernate forums, but received no responses. Maybe someone here has a similar problem or some thoughts/ideas. * The Problem Ok, so you have IoC where you inject services you want to use in other services. Well basically I want to do something similar with my domain model. I have 3 different maven modules. (I have a lot more, but for simplicity's sake) 1. user-module - Which contains a User.class with fields like emailAddress, password, address information, etc. 2. accounting-module - which depends on user-module and need to keep track of a user's pending account balance, posted balance, etc 3. mywebapp-module - which depends on accounting-module Currently If I want to get a user's account balance I have to User user = userService.getUser(id); UserBalance bal = accountingService.getBalance (user); It gets very cumbersome trying to write a ton of different queries to retrieve data from the different tables. For instance if I want to get someone's account balance via their e-mail address a query exists in the userService.findByEmailAddress(), but I have to write another method in the accountingService to do this again. * What Hibernate offers 1. Hibernate offers dynamic mode where you can persist fields via a Map, but you have to set the mode on a 'per session' basis. a. This solution could work if you could have POJO and DYNAMIC-MAP in the same session. (which I don't see why this wouldn't be possible) 2. Hibernate offers dynamic components, but User.class has to know about the dynamic components and they cannot be dynamically wired up. * What I've been working on Modules contributing fields to models of other modules. Instead of UserBalance becoming its own class its now an interace that 'contributes' its fields (via getters/setters) to the User.class so I can do this. User user = userService.findByEmailAddress([EMAIL PROTECTED]); UserBalance balance = (UserBalance) user; The only way I can think of to accomplish this is by creating new classes via javassist/cglib. 1. I take User.class and see if there are any interfaces that want to contribute their fields to User.class 2. I create a new class that extends User.class with the new fields, User$Enhanced.class 3. Then for each class with a field User.class I replace it with the newly generated class There is one big downfall to this approach. You can't create classes via the new operator. User user = new User(); UserBalance balance = (UserBalance) user; -- User does not implement UserBalance, throwsClassCastException. balance.setPending(0.0); session.save(user); -- Hibernate does not know about a User entity, only the new User$Enhanced.class! You have to create objects via a factory so the object is actually of type User$Enhanced User user = factory.create(User.class); This is where class reloading would come in handy! * Conclusion I have not finished a prototype of this yet as there is a big learning curve of (byte code engineering) playing with javassist. I spent a whole day playing with this when I have other priorities, but this could speed up development immensely. Whoever read this, can you give me some feedback? Think its a good idea? Think a slippery slope of problems will unfurl once I get a prototype running? Are there any other existing solutions? Thanks everyone! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
FormComponentPanel and CompoundPropertyModel
I have a FormComponentPanel, I want it to get and set a property from the Form it belongs to who's model is a CompoundPropertyModel. When the FormComponentPanel is loaded, how can I get the backing model's object whether someone passes in a Model or it should get it from the parent? If my FormComponentPanel only has a (String id, IModel model) constructor this is easy. But I want it to also support CompoundPropertyModels from the parent. (String id) I have to initialize a couple of DropDown's with data from the model. Any thoughts? Thanks - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Extend Border
Is it possible to extend an extended Border? In my class TemplateBorder extends Border, I need to have both wicket:child / and wicket:body / in order for Wicket to be able to render AccountTemplateBorder, which extends TemplateBorder. But, then the child is rendered either before or after the border body. I need the child to be rendered inside the border body. Is this possible? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Get Page Title Contents
I have a component that needs the page title of any page its on. Is there an easy way to get that without making the page title a wicket component on every page? Is parsing the rendered page my only option? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]