From: <sim...@us...> - 2008-10-19 11:14:00
|
Revision: 835 http://zkforge.svn.sourceforge.net/zkforge/?rev=835&view=rev Author: simon_massey Date: 2008-10-19 11:13:55 +0000 (Sun, 19 Oct 2008) Log Message: ----------- Modified Paths: -------------- trunk/zktodo2/eclipse.m2eclipse.build.and.run.txt Property Changed: ---------------- trunk/zktodo2/ Property changes on: trunk/zktodo2 ___________________________________________________________________ Added: svn:ignore + target zktodo2test.dat.lck zktodo2test.dat.properties zktodo2test.dat.script zktodo2.dat.lck zktodo2.dat.properties Modified: trunk/zktodo2/eclipse.m2eclipse.build.and.run.txt =================================================================== --- trunk/zktodo2/eclipse.m2eclipse.build.and.run.txt 2008-10-19 10:56:03 UTC (rev 834) +++ trunk/zktodo2/eclipse.m2eclipse.build.and.run.txt 2008-10-19 11:13:55 UTC (rev 835) @@ -6,6 +6,9 @@ 1) Get the latest subclipse plug-in as per plug-in instructions http://subclipse.tigris.org/install.html 2) Get the m2eclipse plug-in using same steps as for subclipse but with the url detailed at http://m2eclipse.codehaus.org/ +The maven plug-in requires that your workspace is building with a jdk. If the plug-in complains that you +are not using a jdk simply use "Window > Preferences > Java > Installed JREs" to ad the enable a jdk +as the workspaces default java runtime. 3) Switch to the SVN Perspective. Right click in the left panel and add a new SVN location the URL of the repository is either https://zkforge.svn.sourceforge.net/svnroot/zkforge This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2008-10-19 12:19:04
|
Revision: 837 http://zkforge.svn.sourceforge.net/zkforge/?rev=837&view=rev Author: simon_massey Date: 2008-10-19 12:18:54 +0000 (Sun, 19 Oct 2008) Log Message: ----------- Modified Paths: -------------- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoController.java trunk/zktodo2/src/main/resources/spring-context.xml Added Paths: ----------- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java Removed Paths: ------------- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Event.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/EventService.java trunk/zktodo2/src/test/java/org/zkforge/zktodo2/EventTest.java Property Changed: ---------------- trunk/zktodo2/ Property changes on: trunk/zktodo2 ___________________________________________________________________ Modified: svn:ignore - target zktodo2test.dat.lck zktodo2test.dat.properties zktodo2test.dat.script zktodo2.dat.lck zktodo2.dat.properties + target zktodo2test.dat.lck zktodo2test.dat.properties zktodo2test.dat.script zktodo2.dat.lck zktodo2.dat.properties zktodo2.dat.script Deleted: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Event.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Event.java 2008-10-19 11:21:02 UTC (rev 836) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Event.java 2008-10-19 12:18:54 UTC (rev 837) @@ -1,71 +0,0 @@ -package org.zkforge.zktodo2; - -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "EVENTS") -public class Event { - @Override - public boolean equals(Object obj) { - if( obj instanceof Event ){ - Event other = (Event) obj; - if( this.getId() != null && other.getId() != null && this.getId().equals(other.getId())){ - return true; - } - } - return false; - } - @Override - public int hashCode() { - return Long.valueOf(this.getId()).hashCode(); - } - @Id @GeneratedValue - @Column(name = "EVENT_ID") - private Long id; - - @Column(name = "NAME") - private String name; - - @Column(name = "PRIORITY") - private int priority; - - @Column(name = "DATE") - private Date date; - - public Event(){} - public Event(String name,int priority,Date date){ - this.name = name; - this.priority = priority; - this.date = date; - } - public Date getDate() { - return date; - } - public void setDate(Date date) { - this.date = date; - } - public int getPriority() { - return priority; - } - public void setPriority(int priority) { - this.priority = priority; - } - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } -} Deleted: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/EventService.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/EventService.java 2008-10-19 11:21:02 UTC (rev 836) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/EventService.java 2008-10-19 12:18:54 UTC (rev 837) @@ -1,40 +0,0 @@ -package org.zkforge.zktodo2; - -import java.util.List; - -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; - -public class EventService { - protected BasicDao basicDao; - - public BasicDao getBasicDao() { - return basicDao; - } - - public void setBasicDao(BasicDao basicDao) { - this.basicDao = basicDao; - } - - @SuppressWarnings("unchecked") - @Transactional(readOnly=true) - public List<Event> findAll(){ - List<?> events = this.basicDao.findAll(Event.class); - return(List<Event>) events; - } - - @Transactional(readOnly=false,propagation = Propagation.REQUIRED) - public void persistEvent(Event event){ - this.basicDao.persist(event); - } - - @Transactional(readOnly=false,propagation = Propagation.REQUIRED) - public void deleteEvent(Event event) throws EntityNotFoundException { - this.basicDao.remove(Event.class, event.getId()); - } - - @Transactional(readOnly=false,propagation = Propagation.REQUIRED) - public void mergeEvent(Event event) throws EntityNotFoundException { - this.basicDao.merge(event); - } -} Copied: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java (from rev 834, trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Event.java) =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java 2008-10-19 12:18:54 UTC (rev 837) @@ -0,0 +1,71 @@ +package org.zkforge.zktodo2; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "REMINDER") +public class Reminder { + @Override + public boolean equals(Object obj) { + if( obj instanceof Reminder ){ + Reminder other = (Reminder) obj; + if( this.getId() != null && other.getId() != null && this.getId().equals(other.getId())){ + return true; + } + } + return false; + } + @Override + public int hashCode() { + return Long.valueOf(this.getId()).hashCode(); + } + @Id @GeneratedValue + @Column(name = "REMINDER_ID") + private Long id; + + @Column(name = "NAME") + private String name; + + @Column(name = "PRIORITY") + private int priority; + + @Column(name = "DATE") + private Date date; + + public Reminder(){} + public Reminder(String name,int priority,Date date){ + this.name = name; + this.priority = priority; + this.date = date; + } + public Date getDate() { + return date; + } + public void setDate(Date date) { + this.date = date; + } + public int getPriority() { + return priority; + } + public void setPriority(int priority) { + this.priority = priority; + } + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } +} Property changes on: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java ___________________________________________________________________ Added: svn:mergeinfo + Copied: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java (from rev 834, trunk/zktodo2/src/main/java/org/zkforge/zktodo2/EventService.java) =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java 2008-10-19 12:18:54 UTC (rev 837) @@ -0,0 +1,40 @@ +package org.zkforge.zktodo2; + +import java.util.List; + +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +public class ReminderService { + protected BasicDao basicDao; + + public BasicDao getBasicDao() { + return basicDao; + } + + public void setBasicDao(BasicDao basicDao) { + this.basicDao = basicDao; + } + + @SuppressWarnings("unchecked") + @Transactional(readOnly=true) + public List<Reminder> findAll(){ + List<?> events = this.basicDao.findAll(Reminder.class); + return(List<Reminder>) events; + } + + @Transactional(readOnly=false,propagation = Propagation.REQUIRED) + public void persistEvent(Reminder reminder){ + this.basicDao.persist(reminder); + } + + @Transactional(readOnly=false,propagation = Propagation.REQUIRED) + public void deleteEvent(Reminder reminder) throws EntityNotFoundException { + this.basicDao.remove(Reminder.class, reminder.getId()); + } + + @Transactional(readOnly=false,propagation = Propagation.REQUIRED) + public void mergeEvent(Reminder reminder) throws EntityNotFoundException { + this.basicDao.merge(reminder); + } +} Property changes on: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoController.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoController.java 2008-10-19 11:21:02 UTC (rev 836) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoController.java 2008-10-19 12:18:54 UTC (rev 837) @@ -1,10 +1,13 @@ package org.zkforge.zktodo2; +import static java.lang.System.out; + import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Datebox; @@ -16,42 +19,40 @@ import org.zkoss.zul.ListitemRenderer; import org.zkoss.zul.Textbox; -import static java.lang.System.out; - public class ZkToDoController extends GenericForwardComposer implements ListitemRenderer { public ZkToDoController() { } - protected EventService eventService; + protected ReminderService reminderService; - public EventService getEventService() { - return eventService; + public ReminderService getReminderService() { + return reminderService; } - public void setEventService(EventService eventService) { - this.eventService = eventService; + public void setReminderService(ReminderService reminderService) { + this.reminderService = reminderService; } - protected Event selectedEvent = null; + protected Reminder selectedReminder = null; @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); listModelList = new ListModelList(); - List<Event> events = eventService.findAll(); - listModelList.addAll(events); + List<Reminder> reminders = reminderService.findAll(); + listModelList.addAll(reminders); list.setModel(listModelList); list.setItemRenderer(this); list.addEventListener("onSelect", new EventListener(){ - public void onEvent(org.zkoss.zk.ui.event.Event e) + public void onEvent(Event e) throws Exception { int index = list.getSelectedIndex(); - selectedEvent = (Event) listModelList.get(index); - date.setValue(selectedEvent.getDate()); - priority.setValue(selectedEvent.getPriority()); - name.setValue(selectedEvent.getName()); + selectedReminder = (Reminder) listModelList.get(index); + date.setValue(selectedReminder.getDate()); + priority.setValue(selectedReminder.getPriority()); + name.setValue(selectedReminder.getName()); return; }}); } @@ -62,71 +63,71 @@ protected Listbox list; protected ListModelList listModelList; - public void onClick$add(org.zkoss.zk.ui.event.Event e) { + public void onClick$add(Event e) { Date dateValue = date.getValue(); Integer priorityValue = priority.getValue(); String nameValue = name.getValue(); if( dateValue != null && priorityValue != null && nameValue != null ){ - Event event = new Event(); - event.setDate(date.getValue()); - event.setName(name.getValue()); - event.setPriority(priority.getValue()); - this.eventService.persistEvent(event); - List<Event> events = this.eventService.findAll(); + Reminder reminder = new Reminder(); + reminder.setDate(date.getValue()); + reminder.setName(name.getValue()); + reminder.setPriority(priority.getValue()); + this.reminderService.persistEvent(reminder); + List<Reminder> reminders = this.reminderService.findAll(); this.listModelList.clear(); - this.listModelList.addAll(events); - this.selectedEvent = event; + this.listModelList.addAll(reminders); + this.selectedReminder = reminder; } } - public void onClick$update(org.zkoss.zk.ui.event.Event e) { - if( selectedEvent != null ){ - selectedEvent.setDate(date.getValue()); - selectedEvent.setPriority(priority.getValue()); - selectedEvent.setName(name.getValue()); + public void onClick$update(Event e) { + if( selectedReminder != null ){ + selectedReminder.setDate(date.getValue()); + selectedReminder.setPriority(priority.getValue()); + selectedReminder.setName(name.getValue()); try { - this.eventService.mergeEvent(selectedEvent); + this.reminderService.mergeEvent(selectedReminder); } catch (EntityNotFoundException exception){ int index = list.getSelectedIndex(); listModelList.remove(index); - alert("Event "+selectedEvent.getName()+" has been deleted by another user."); + alert("Reminder "+selectedReminder.getName()+" has been deleted by another user."); if( listModelList.size() > 0 ){ - selectedEvent = (Event)listModelList.get(0); + selectedReminder = (Reminder)listModelList.get(0); list.setSelectedIndex(0); - name.setValue(selectedEvent.getName()); - date.setValue(selectedEvent.getDate()); - priority.setValue(selectedEvent.getPriority()); + name.setValue(selectedReminder.getName()); + date.setValue(selectedReminder.getDate()); + priority.setValue(selectedReminder.getPriority()); } else { - selectedEvent = null; + selectedReminder = null; } } - List<Event> events = eventService.findAll(); + List<Reminder> reminders = reminderService.findAll(); listModelList.clear(); - listModelList.addAll(events); + listModelList.addAll(reminders); } } - public void onClick$delete(org.zkoss.zk.ui.event.Event e) { - if( null != selectedEvent ){ - int index = listModelList.indexOf(selectedEvent); + public void onClick$delete(Event e) { + if( null != selectedReminder ){ + int index = listModelList.indexOf(selectedReminder); try { - this.eventService.deleteEvent(selectedEvent); + this.reminderService.deleteEvent(selectedReminder); } catch (EntityNotFoundException exception ){ out.println("This is harmless as someone else has already deleted this item."); } - listModelList.remove(selectedEvent); + listModelList.remove(selectedReminder); if( index >= listModelList.size() ){ index = listModelList.size() - 1; } if( listModelList.size() > 0 ){ - selectedEvent = (Event)listModelList.get(index); + selectedReminder = (Reminder)listModelList.get(index); list.setSelectedIndex(index); - name.setValue(selectedEvent.getName()); - date.setValue(selectedEvent.getDate()); - priority.setValue(selectedEvent.getPriority()); + name.setValue(selectedReminder.getName()); + date.setValue(selectedReminder.getDate()); + priority.setValue(selectedReminder.getPriority()); } else { - selectedEvent = null; + selectedReminder = null; } } } @@ -134,9 +135,9 @@ protected SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy"); public void render(Listitem listItem, Object data) throws Exception { - Event event = (Event) data; - new Listcell(event.getName()).setParent(listItem); - new Listcell(event.getPriority()+"").setParent(listItem); - new Listcell(dateFormat.format(event.getDate())).setParent(listItem); + Reminder reminder = (Reminder) data; + new Listcell(reminder.getName()).setParent(listItem); + new Listcell(reminder.getPriority()+"").setParent(listItem); + new Listcell(dateFormat.format(reminder.getDate())).setParent(listItem); } } Modified: trunk/zktodo2/src/main/resources/spring-context.xml =================================================================== --- trunk/zktodo2/src/main/resources/spring-context.xml 2008-10-19 11:21:02 UTC (rev 836) +++ trunk/zktodo2/src/main/resources/spring-context.xml 2008-10-19 12:18:54 UTC (rev 837) @@ -44,12 +44,12 @@ <bean id="basicDao" class="org.zkforge.zktodo2.BasicDao" /> - <bean id="eventService" class="org.zkforge.zktodo2.EventService" + <bean id="reminderService" class="org.zkforge.zktodo2.ReminderService" p:basicDao-ref="basicDao" /> <bean id="toDoController" class="org.zkforge.zktodo2.ZkToDoController" - p:eventService-ref="eventService" scope="prototype" + p:reminderService-ref="reminderService" scope="prototype" /> </beans> Deleted: trunk/zktodo2/src/test/java/org/zkforge/zktodo2/EventTest.java =================================================================== --- trunk/zktodo2/src/test/java/org/zkforge/zktodo2/EventTest.java 2008-10-19 11:21:02 UTC (rev 836) +++ trunk/zktodo2/src/test/java/org/zkforge/zktodo2/EventTest.java 2008-10-19 12:18:54 UTC (rev 837) @@ -1,112 +0,0 @@ -package org.zkforge.zktodo2; - -import java.util.Calendar; -import java.util.List; - -import javax.sql.DataSource; - -import org.springframework.test.AbstractDependencyInjectionSpringContextTests; -import org.springframework.test.jpa.AbstractJpaTests; - -public class EventTest extends AbstractJpaTests { - - public EventTest() { - this - .setAutowireMode(AbstractDependencyInjectionSpringContextTests.AUTOWIRE_BY_NAME); - } - - public String[] getConfigLocations() { - return new String[] { "classpath:dataSourceContext.xml", - "classpath:spring-context.xml" }; - } - - protected DataSource dataSource; - - public DataSource getDataSource() { - return dataSource; - } - - public void setDataSource(DataSource dataSource) { - this.dataSource = dataSource; - } - - protected BasicDao basicDao; - - public BasicDao getBasicDao() { - return basicDao; - } - - public void setBasicDao(BasicDao basicDao) { - this.basicDao = basicDao; - } - - protected EventService eventService; - - public void testConfig() throws Exception { - assertNotNull(dataSource); - assertNotNull(basicDao); - assertNotNull(eventService); - } - - public void testBasicDao() throws Exception { - Calendar calender = Calendar.getInstance(); - calender.set(1975, 5, 19); - Event event = new Event("My Birthday", 2, calender.getTime()); - basicDao.persist(event); - assertNotNull(event.getId()); - Event event2 = (Event)basicDao.findSingle("from Event where name = ?", "My Birthday"); - assertEquals(event, event2); - calender.set(1979, 4, 8); - Event event3 = new Event("My Ladies Birthday", 1, calender.getTime()); - basicDao.persist(event3); - assertNotNull(event3.getId()); - Event event4 = (Event)basicDao.findSingle("from Event where name = ?", "My Ladies Birthday"); - assertEquals(event3, event4); - List<Event> events = (List<Event>)basicDao.findAll(Event.class); - assertEquals(2, events.size()); - boolean foundMyDay = false; - boolean foundHerDay = false; - for( Event e : events ){ - if( e.getName().equals("My Birthday")){ - foundMyDay = true; - } else if ( e.getName().equals("My Ladies Birthday") ){ - foundHerDay = true; - } - } - assertTrue(foundMyDay); - assertTrue(foundHerDay); - } - - public void testEventModel() throws Exception { - Calendar calender = Calendar.getInstance(); - calender.set(1975, 5, 19); - Event event = new Event("My Birthday", 2, calender.getTime()); - eventService.persistEvent(event); - assertNotNull(event.getId()); - calender.set(1979, 4, 8); - Event event2 = new Event("My Ladies Birthday", 1, calender.getTime()); - eventService.persistEvent(event2); - assertNotNull(event2.getId()); - List<Event> events = eventService.findAll(); - assertEquals(2, events.size()); - boolean foundMyDay = false; - boolean foundHerDay = false; - for( Event e : events ){ - if( e.getName().equals("My Birthday")){ - foundMyDay = true; - } else if ( e.getName().equals("My Ladies Birthday") ){ - foundHerDay = true; - } - } - assertTrue(foundMyDay); - assertTrue(foundHerDay); - } - - public EventService getEventService() { - return eventService; - } - - public void setEventService(EventService eventService) { - this.eventService = eventService; - } -} Copied: trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java (from rev 834, trunk/zktodo2/src/test/java/org/zkforge/zktodo2/EventTest.java) =================================================================== --- trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java (rev 0) +++ trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java 2008-10-19 12:18:54 UTC (rev 837) @@ -0,0 +1,112 @@ +package org.zkforge.zktodo2; + +import java.util.Calendar; +import java.util.List; + +import javax.sql.DataSource; + +import org.springframework.test.AbstractDependencyInjectionSpringContextTests; +import org.springframework.test.jpa.AbstractJpaTests; + +public class ReminderTest extends AbstractJpaTests { + + public ReminderTest() { + this + .setAutowireMode(AbstractDependencyInjectionSpringContextTests.AUTOWIRE_BY_NAME); + } + + public String[] getConfigLocations() { + return new String[] { "classpath:dataSourceContext.xml", + "classpath:spring-context.xml" }; + } + + protected DataSource dataSource; + + public DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + protected BasicDao basicDao; + + public BasicDao getBasicDao() { + return basicDao; + } + + public void setBasicDao(BasicDao basicDao) { + this.basicDao = basicDao; + } + + protected ReminderService reminderService; + + public ReminderService getReminderService() { + return reminderService; + } + + public void setReminderService(ReminderService reminderService) { + this.reminderService = reminderService; + } + + public void testConfig() throws Exception { + assertNotNull(dataSource); + assertNotNull(basicDao); + assertNotNull(reminderService); + } + + public void testBasicDao() throws Exception { + Calendar calender = Calendar.getInstance(); + calender.set(1975, 5, 19); + Reminder reminder = new Reminder("My Birthday", 2, calender.getTime()); + basicDao.persist(reminder); + assertNotNull(reminder.getId()); + Reminder event2 = (Reminder)basicDao.findSingle("from Reminder where name = ?", "My Birthday"); + assertEquals(reminder, event2); + calender.set(1979, 4, 8); + Reminder event3 = new Reminder("My Ladies Birthday", 1, calender.getTime()); + basicDao.persist(event3); + assertNotNull(event3.getId()); + Reminder event4 = (Reminder)basicDao.findSingle("from Reminder where name = ?", "My Ladies Birthday"); + assertEquals(event3, event4); + List<Reminder> reminders = (List<Reminder>)basicDao.findAll(Reminder.class); + assertEquals(2, reminders.size()); + boolean foundMyDay = false; + boolean foundHerDay = false; + for( Reminder e : reminders ){ + if( e.getName().equals("My Birthday")){ + foundMyDay = true; + } else if ( e.getName().equals("My Ladies Birthday") ){ + foundHerDay = true; + } + } + assertTrue(foundMyDay); + assertTrue(foundHerDay); + } + + public void testEventModel() throws Exception { + Calendar calender = Calendar.getInstance(); + calender.set(1975, 5, 19); + Reminder reminder = new Reminder("My Birthday", 2, calender.getTime()); + reminderService.persistEvent(reminder); + assertNotNull(reminder.getId()); + calender.set(1979, 4, 8); + Reminder event2 = new Reminder("My Ladies Birthday", 1, calender.getTime()); + reminderService.persistEvent(event2); + assertNotNull(event2.getId()); + List<Reminder> reminders = reminderService.findAll(); + assertEquals(2, reminders.size()); + boolean foundMyDay = false; + boolean foundHerDay = false; + for( Reminder e : reminders ){ + if( e.getName().equals("My Birthday")){ + foundMyDay = true; + } else if ( e.getName().equals("My Ladies Birthday") ){ + foundHerDay = true; + } + } + assertTrue(foundMyDay); + assertTrue(foundHerDay); + } +} Property changes on: trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java ___________________________________________________________________ Added: svn:mergeinfo + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2008-11-10 19:47:02
|
Revision: 855 http://zkforge.svn.sourceforge.net/zkforge/?rev=855&view=rev Author: simon_massey Date: 2008-11-10 19:46:58 +0000 (Mon, 10 Nov 2008) Log Message: ----------- Modified Paths: -------------- trunk/zktodo2/.classpath trunk/zktodo2/.project trunk/zktodo2/pom.xml Added Paths: ----------- trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs Modified: trunk/zktodo2/.classpath =================================================================== --- trunk/zktodo2/.classpath 2008-11-10 19:00:11 UTC (rev 854) +++ trunk/zktodo2/.classpath 2008-11-10 19:46:58 UTC (rev 855) @@ -1,41 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" path="src/main/java"/> - <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/> - <classpathentry kind="src" path="src/test/java" output="target/test-classes"/> - <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/> - <classpathentry kind="output" path="target/classes"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/> - <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/> - <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar"/> - <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/2.1.1/commons-collections-2.1.1.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/> - <classpathentry kind="var" path="M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"/> - <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/> - <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/> - <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.1.GA/ejb3-persistence-1.0.1.GA.jar"/> - <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.1.1/geronimo-jta_1.0.1B_spec-1.1.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar"/> - <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.3.1.GA/hibernate-annotations-3.3.1.GA.jar"/> - <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.jar"/> - <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.3.2.GA/hibernate-entitymanager-3.3.2.GA.jar"/> - <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.7/hsqldb-1.8.0.7.jar"/> - <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/> - <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring/2.5.5/spring-2.5.5.jar"/> - <classpathentry kind="var" path="M2_REPO/org/springframework/spring-test/2.5.5/spring-test-2.5.5.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/common/zcommon/3.5.0/zcommon-3.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/zkforge/el/zcommons-el/1.0.1/zcommons-el-1.0.1.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/zk/zhtml/3.5.0/zhtml-3.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/zk/zk/3.5.0/zk-3.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/zk/zkex/3.5.0/zkex-3.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/zk/zkplus/3.5.0/zkplus-3.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/zk/zul/3.5.0/zul-3.5.0.jar"/> - <classpathentry kind="var" path="M2_REPO/org/zkoss/common/zweb/3.5.0/zweb-3.5.0.jar"/> -</classpath> \ No newline at end of file + <classpathentry kind="src" output="target/classes" path="src/main/java"/> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> + <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/> + <classpathentry kind="output" path="target/classes"/> +</classpath> Modified: trunk/zktodo2/.project =================================================================== --- trunk/zktodo2/.project 2008-11-10 19:00:11 UTC (rev 854) +++ trunk/zktodo2/.project 2008-11-10 19:46:58 UTC (rev 855) @@ -11,11 +11,6 @@ </arguments> </buildCommand> <buildCommand> - <name>org.maven.ide.eclipse.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> <arguments> <dictionary> @@ -24,6 +19,11 @@ </dictionary> </arguments> </buildCommand> + <buildCommand> + <name>org.maven.ide.eclipse.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> </buildSpec> <natures> <nature>org.maven.ide.eclipse.maven2Nature</nature> Added: trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs =================================================================== --- trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs (rev 0) +++ trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs 2008-11-10 19:46:58 UTC (rev 855) @@ -0,0 +1,8 @@ +#Mon Nov 10 18:56:09 GMT 2008 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +version=1 Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2008-11-10 19:00:11 UTC (rev 854) +++ trunk/zktodo2/pom.xml 2008-11-10 19:46:58 UTC (rev 855) @@ -4,7 +4,7 @@ <groupId>org.zkforge.zktodo2</groupId> <artifactId>zktodo2</artifactId> <packaging>war</packaging> - <version>1.1-SNAPSHOT</version> + <version>1.0</version> <name>zktodo2</name> <url>http://www.zkoss.org</url> <properties> @@ -127,7 +127,7 @@ <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jta_1.0.1B_spec</artifactId> <version>${geronimo-jta.version}</version> - <scope>test</scope> + <scope>runtime</scope> </dependency> <dependency> <groupId>junit</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2009-01-18 14:24:40
|
Revision: 876 http://zkforge.svn.sourceforge.net/zkforge/?rev=876&view=rev Author: simon_massey Date: 2009-01-18 14:24:36 +0000 (Sun, 18 Jan 2009) Log Message: ----------- bumped the version number for a release. Modified Paths: -------------- trunk/zktodo2/pom.xml Added Paths: ----------- trunk/zktodo2/readme.txt Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2009-01-16 10:21:05 UTC (rev 875) +++ trunk/zktodo2/pom.xml 2009-01-18 14:24:36 UTC (rev 876) @@ -4,7 +4,7 @@ <groupId>org.zkforge.zktodo2</groupId> <artifactId>zktodo2</artifactId> <packaging>war</packaging> - <version>1.1-SNAPSHOT</version> + <version>1.1</version> <name>zktodo2</name> <url>http://www.zkoss.org/smalltalks/mvc4/</url> <properties> @@ -137,7 +137,7 @@ </dependency> </dependencies> <build> - <finalName>zktodo2</finalName> + <finalName>zktodo2-${version}</finalName> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> Added: trunk/zktodo2/readme.txt =================================================================== --- trunk/zktodo2/readme.txt (rev 0) +++ trunk/zktodo2/readme.txt 2009-01-18 14:24:36 UTC (rev 876) @@ -0,0 +1,7 @@ +Installation: + +1 Deploy this application to Tomcat by copying the zktodo2-X.X.war file to the directory $TOMCAT_HOME/webapps/. Tomcat will handle the rest of work, including unzipping and deploying. +2 Start your Tomcat. +3 Open your browser, and visit http://localhost:8080/zktodo2-X.X/index.jsp (the port number depends on the configuration of your Tomcat). +4 The code is documented at http://www.zkoss.org/smalltalks/mvc4/ + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2009-07-19 05:01:25
|
Revision: 923 http://zkforge.svn.sourceforge.net/zkforge/?rev=923&view=rev Author: simon_massey Date: 2009-07-19 05:01:15 +0000 (Sun, 19 Jul 2009) Log Message: ----------- bumped to zk3.6.2 Modified Paths: -------------- trunk/zktodo2/.classpath trunk/zktodo2/pom.xml trunk/zktodo2/src/main/java/org/zkforge/demo/SectionsInit.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java Modified: trunk/zktodo2/.classpath =================================================================== --- trunk/zktodo2/.classpath 2009-07-13 08:46:19 UTC (rev 922) +++ trunk/zktodo2/.classpath 2009-07-19 05:01:15 UTC (rev 923) @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"/> - <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> - <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="src" path="src/main/java"/> + <classpathentry kind="src" path="src/test/java"/> + <classpathentry excluding="**" kind="src" output="src/main/resources" path="src/main/resources"/> + <classpathentry excluding="**" kind="src" output="src/test/resources" path="src/test/resources"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/> <classpathentry kind="output" path="target/classes"/> </classpath> Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2009-07-13 08:46:19 UTC (rev 922) +++ trunk/zktodo2/pom.xml 2009-07-19 05:01:15 UTC (rev 923) @@ -8,7 +8,7 @@ <name>zktodo2</name> <url>http://www.zkoss.org/smalltalks/mvc4/</url> <properties> - <zk.version>3.6.1</zk.version> + <zk.version>3.6.2</zk.version> <zkel.version>1.0.2</zkel.version> <spring.version>2.5.6</spring.version> <hsqldb.version>1.8.0.7</hsqldb.version> Modified: trunk/zktodo2/src/main/java/org/zkforge/demo/SectionsInit.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/demo/SectionsInit.java 2009-07-13 08:46:19 UTC (rev 922) +++ trunk/zktodo2/src/main/java/org/zkforge/demo/SectionsInit.java 2009-07-19 05:01:15 UTC (rev 923) @@ -69,4 +69,9 @@ return; } + @SuppressWarnings("unchecked") + public void doInit(Page arg0, Map arg1) throws Exception { + + } + } Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java 2009-07-13 08:46:19 UTC (rev 922) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java 2009-07-19 05:01:15 UTC (rev 923) @@ -5,6 +5,7 @@ import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @@ -25,7 +26,7 @@ public int hashCode() { return Long.valueOf(this.getId()).hashCode(); } - @Id @GeneratedValue + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "REMINDER_ID") private Long id; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2009-07-22 09:49:48
|
Revision: 925 http://zkforge.svn.sourceforge.net/zkforge/?rev=925&view=rev Author: simon_massey Date: 2009-07-22 09:49:41 +0000 (Wed, 22 Jul 2009) Log Message: ----------- provisional spring clustering support for zktodo2 Modified Paths: -------------- trunk/zktodo2/pom.xml trunk/zktodo2/src/main/webapp/index.jsp Added Paths: ----------- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java trunk/zktodo2/src/main/webapp/zktodo_c.zul Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2009-07-19 05:03:16 UTC (rev 924) +++ trunk/zktodo2/pom.xml 2009-07-22 09:49:41 UTC (rev 925) @@ -4,7 +4,7 @@ <groupId>org.zkforge.zktodo2</groupId> <artifactId>zktodo2</artifactId> <packaging>war</packaging> - <version>1.1</version> + <version>1.2</version> <name>zktodo2</name> <url>http://www.zkoss.org/smalltalks/mvc4/</url> <properties> @@ -19,6 +19,7 @@ <bsh.version>2.0b4</bsh.version> <commons-fileupload.version>1.2.1</commons-fileupload.version> <commons-io.version>1.4</commons-io.version> + <servlet-api.version>2.4</servlet-api.version> </properties> <dependencies> <dependency> @@ -88,6 +89,11 @@ <version>${zkel.version}</version> </dependency> <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>${servlet-api.version}</version> + </dependency> + <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.version}</version> @@ -153,4 +159,4 @@ </plugin> </plugins> </build> -</project> +</project> \ No newline at end of file Added: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java 2009-07-22 09:49:41 UTC (rev 925) @@ -0,0 +1,70 @@ +package org.zkforge.zktodo2; + +import java.lang.reflect.Field; +import java.util.Map; +import java.util.Set; + +import javax.servlet.ServletContext; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; +import org.zkoss.zk.scripting.Namespace; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.util.GenericForwardComposer; + +public class GenericSpringComposer extends GenericForwardComposer { + + private static final long serialVersionUID = -8554216461300908912L; + + private ServletContext servletContext = null; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + this.servletContext = (ServletContext) comp.getDesktop().getWebApp() + .getNativeContext(); + this.wireBeans(); + } + + @Override + public void didActivate(Namespace namespace) { + super.didActivate(namespace); + try { + this.wireBeans(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + private void wireBeans() throws IllegalArgumentException, + IllegalAccessException { + ApplicationContext ctx = WebApplicationContextUtils + .getWebApplicationContext(this.servletContext); + Field[] fields = this.getClass().getDeclaredFields(); + for (Field f : fields) { + Autowired annotation = f.getAnnotation(Autowired.class); + if (annotation != null) { + f.setAccessible(true); // Make private fields accessible. + Class<?> type = f.getType(); + @SuppressWarnings("unchecked") + Map<String, Object> map = ctx.getBeansOfType(type, true, true); + if (map.size() > 1) { + throw new AssertionError( + "found more than one bean on application context of type " + + type); + } + Set<Map.Entry<String, Object>> entrySet = map.entrySet(); + Map.Entry<String, Object> entry = entrySet.iterator().next(); + java.lang.System.out.println("entry.getKey():" + entry.getKey() + + ", entry.getValue:" + entry.getValue()); + Object bean = entry.getValue(); + f.set(this, bean); + } + + } + } + +} Added: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java 2009-07-22 09:49:41 UTC (rev 925) @@ -0,0 +1,107 @@ +package org.zkforge.zktodo2; + +import static java.lang.System.out; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Intbox; +import org.zkoss.zul.ListModel; +import org.zkoss.zul.ListModelList; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Textbox; + +public class ZkToDoControllerV3 extends GenericSpringComposer { + + private static final long serialVersionUID = 2560535692993939331L; + protected transient Textbox name; + protected transient Intbox priority; + protected transient Datebox date; + protected transient Listbox list; + + public ZkToDoControllerV3(){ + return; + } + + @Autowired + protected transient ZkToDoModel toDoModel = null; + + public ZkToDoModel getToDoModel() { + return toDoModel; + } + + public void onClick$add(Event e) { + Date dateValue = date.getValue(); + Integer priorityValue = priority.getValue(); + String nameValue = name.getValue(); + if( dateValue != null && priorityValue != null && nameValue != null ){ + Reminder reminder = new Reminder(); + reminder.setDate(date.getValue()); + reminder.setName(name.getValue()); + reminder.setPriority(priority.getValue()); + this.toDoModel.persistEvent(reminder); + List<Reminder> reminders = this.toDoModel.findAll(); + ListModel listModel = this.list.getModel(); + ListModelList listModelList = (ListModelList)listModel; + listModelList.clear(); + listModelList.addAll(reminders); + } + return; + } + + public void onClick$update(Event e) { + Reminder selectedReminder = this.toDoModel.getSelectedReminder(); + if( selectedReminder != null ){ + ListModelList listModelList = (ListModelList)this.list.getModel(); + try { + this.toDoModel.mergeEvent(selectedReminder); + } catch (EntityNotFoundException exception){ + int index = list.getSelectedIndex(); + listModelList.remove(index); + alert("Reminder "+selectedReminder.getName()+" has been deleted by another user."); + if( listModelList.size() > 0 ){ + selectedReminder = (Reminder)listModelList.get(0); + list.setSelectedIndex(0); + name.setValue(selectedReminder.getName()); + date.setValue(selectedReminder.getDate()); + priority.setValue(selectedReminder.getPriority()); + } else { + selectedReminder = null; + } + } + List<Reminder> reminders = toDoModel.findAll(); + listModelList.clear(); + listModelList.addAll(reminders); + } + } + + public void onClick$delete(Event e) { + Reminder selectedReminder = this.toDoModel.getSelectedReminder(); + if( null != selectedReminder ){ + ListModel listModel = this.list.getModel(); + ListModelList listModelList = (ListModelList)listModel; + int index = listModelList.indexOf(selectedReminder); + try { + this.toDoModel.deleteEvent(selectedReminder); + } catch (EntityNotFoundException exception ){ + out.println("This is harmless as someone else has already deleted this item."); + } + listModelList.remove(selectedReminder); + if( index >= listModelList.size() ){ + index = listModelList.size() - 1; + } + if( listModelList.size() > 0 ){ + selectedReminder = (Reminder)listModelList.get(index); + list.setSelectedIndex(index); + name.setValue(selectedReminder.getName()); + date.setValue(selectedReminder.getDate()); + priority.setValue(selectedReminder.getPriority()); + } else { + selectedReminder = null; + } + } + } +} Modified: trunk/zktodo2/src/main/webapp/index.jsp =================================================================== --- trunk/zktodo2/src/main/webapp/index.jsp 2009-07-19 05:03:16 UTC (rev 924) +++ trunk/zktodo2/src/main/webapp/index.jsp 2009-07-22 09:49:41 UTC (rev 925) @@ -2,3 +2,5 @@ <br/> Click <a href="zktodo_b.zul">here</a> for the databindings version of the zul with an explicit model class. <br/> +Click <a href="zktodo_c.zul">here</a> for the session clusterable version. +<br/> Added: trunk/zktodo2/src/main/webapp/zktodo_c.zul =================================================================== --- trunk/zktodo2/src/main/webapp/zktodo_c.zul (rev 0) +++ trunk/zktodo2/src/main/webapp/zktodo_c.zul 2009-07-22 09:49:41 UTC (rev 925) @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<zk xmlns="http://www.zkoss.org/2005/zul"> +<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?> +<window id="container" title="To do list" width="640px" border="normal" apply="org.zkforge.zktodo2.ZkToDoControllerV3"> +<listbox id="list" multiple="true" rows="4" model="@{container$composer.toDoModel.reminders}" selectedItem="@{container$composer.toDoModel.selectedReminder}"> + <listhead> + <listheader label="Item" /> + <listheader label="Priority" width="80px" /> + <listheader label="Opened" width="90px" /> + </listhead> + <listitem self="@{each=reminder}"> + <listcell label="@{reminder.name}"/> + <listcell label="@{reminder.priority}"/> + <listcell label="@{reminder.date, converter='org.zkforge.zktodo2.DateFormatConverter'}"/> + </listitem> +</listbox> +<vbox> + <hbox> + Item:<textbox id="name" cols="40" constraint="no empty" value="@{container$composer.toDoModel.selectedReminder.name}"/> + Priority:<intbox id="priority" cols="1" constraint="no empty" value="@{container$composer.toDoModel.selectedReminder.priority}"/> + Date:<datebox id="date" cols="14" constraint="no empty" value="@{container$composer.toDoModel.selectedReminder.date}"/> + </hbox> + <hbox> + <button id="add" label="Add" width="36px" height="24px"/> + <button id="update" label="Update" width="46px" height="24px"/> + <button id="delete" label="Delete" width="46px" height="24px"/> + </hbox> +</vbox> +</window> +</zk> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2010-11-21 21:42:13
|
Revision: 1102 http://zkforge.svn.sourceforge.net/zkforge/?rev=1102&view=rev Author: simon_massey Date: 2010-11-21 21:42:06 +0000 (Sun, 21 Nov 2010) Log Message: ----------- updated to zk-5.0.5 and spring-3.0.5 Modified Paths: -------------- trunk/zktodo2/.classpath trunk/zktodo2/.project trunk/zktodo2/.settings/org.eclipse.jdt.core.prefs trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs trunk/zktodo2/pom.xml trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV2.java trunk/zktodo2/src/main/webapp/index.jsp Removed Paths: ------------- trunk/zktodo2/.externalToolBuilders/ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java trunk/zktodo2/src/main/webapp/zktodo_c.zul Modified: trunk/zktodo2/.classpath =================================================================== --- trunk/zktodo2/.classpath 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/.classpath 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,10 +1,10 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src/main/java"/> - <classpathentry kind="src" path="src/test/java"/> - <classpathentry excluding="**" kind="src" output="src/main/resources" path="src/main/resources"/> - <classpathentry excluding="**" kind="src" output="src/test/resources" path="src/test/resources"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/> - <classpathentry kind="output" path="target/classes"/> -</classpath> +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"/> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> + <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/> + <classpathentry kind="output" path="target/classes"/> +</classpath> Modified: trunk/zktodo2/.project =================================================================== --- trunk/zktodo2/.project 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/.project 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,32 +1,23 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>zktodo2</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> - <arguments> - <dictionary> - <key>LaunchConfigHandle</key> - <value><project>/.externalToolBuilders/maven.launch</value> - </dictionary> - </arguments> - </buildCommand> - <buildCommand> - <name>org.maven.ide.eclipse.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.maven.ide.eclipse.maven2Nature</nature> - <nature>org.eclipse.jdt.core.javanature</nature> - </natures> -</projectDescription> +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>zktodo2</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.maven.ide.eclipse.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.maven.ide.eclipse.maven2Nature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> Modified: trunk/zktodo2/.settings/org.eclipse.jdt.core.prefs =================================================================== --- trunk/zktodo2/.settings/org.eclipse.jdt.core.prefs 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/.settings/org.eclipse.jdt.core.prefs 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,5 +1,12 @@ -#Sat Oct 11 15:08:36 BST 2008 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.source=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 +#Sun Nov 21 20:05:22 GMT 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 Modified: trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs =================================================================== --- trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/.settings/org.maven.ide.eclipse.prefs 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,8 +1,9 @@ -#Mon Nov 10 18:56:09 GMT 2008 -activeProfiles= -eclipse.preferences.version=1 -fullBuildGoals=process-test-resources -includeModules=false -resolveWorkspaceProjects=true -resourceFilterGoals=process-resources resources\:testResources -version=1 +#Sun Nov 21 20:01:35 GMT 2010 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/pom.xml 2010-11-21 21:42:06 UTC (rev 1102) @@ -7,10 +7,16 @@ <version>1.2</version> <name>zktodo2</name> <url>http://www.zkoss.org/smalltalks/mvc4/</url> + <repositories> + <repository> + <id>zk repository</id> + <url>http://mavensync.zkoss.org/maven2</url> + </repository> + </repositories> <properties> - <zk.version>3.6.2</zk.version> + <zk.version>5.0.5</zk.version> <zkel.version>1.0.2</zkel.version> - <spring.version>2.5.6</spring.version> + <spring.version>3.0.5.RELEASE</spring.version> <hsqldb.version>1.8.0.7</hsqldb.version> <hibernate.version>3.3.2.GA</hibernate.version> <commons-dbcp.version>1.2.2</commons-dbcp.version> @@ -20,9 +26,15 @@ <commons-fileupload.version>1.2.1</commons-fileupload.version> <commons-io.version>1.4</commons-io.version> <servlet-api.version>2.4</servlet-api.version> + <junit.version>4.7</junit.version> </properties> <dependencies> <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>${servlet-api.version}</version> + </dependency> + <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.0.4</version> @@ -45,20 +57,26 @@ </dependency> <dependency> <groupId>org.springframework</groupId> - <artifactId>spring</artifactId> + <artifactId>spring-core</artifactId> <version>${spring.version}</version> <scope>compile</scope> </dependency> <dependency> - <groupId>org.zkoss.zk</groupId> - <artifactId>zk</artifactId> - <version>${zk.version}</version> - <scope>compile</scope> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + <version>${spring.version}</version> + <scope>runtime</scope> + <exclusions> + <exclusion> + <groupId>aopalliance</groupId> + <artifactId>aopalliance</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> - <groupId>org.zkoss.zk</groupId> - <artifactId>zkplus</artifactId> - <version>${zk.version}</version> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${spring.version}</version> <scope>compile</scope> </dependency> <dependency> @@ -66,34 +84,138 @@ <artifactId>zul</artifactId> <version>${zk.version}</version> <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>org.codehaus.groovy</groupId> + <artifactId>groovy-all</artifactId> + </exclusion> + <exclusion> + <groupId>rhino</groupId> + <artifactId>js</artifactId> + </exclusion> + <exclusion> + <groupId>org.jruby</groupId> + <artifactId>jruby</artifactId> + </exclusion> + <exclusion> + <groupId>org.python</groupId> + <artifactId>jython</artifactId> + </exclusion> + <exclusion> + <groupId>javax.portlet</groupId> + <artifactId>portlet-api</artifactId> + </exclusion> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.zkoss.zk</groupId> - <artifactId>zhtml</artifactId> + <artifactId>zkplus</artifactId> <version>${zk.version}</version> <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-support</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-remoting</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-jdbc</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </exclusion> + <exclusion> + <groupId>org.acegisecurity</groupId> + <artifactId>acegi-security</artifactId> + </exclusion> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </exclusion> + <exclusion> + <groupId>javax.enterprise</groupId> + <artifactId>cdi-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.seasar.container</groupId> + <artifactId>s2-framework</artifactId> + </exclusion> + <exclusion> + <groupId>javax.inject</groupId> + <artifactId>javax.inject</artifactId> + </exclusion> + <exclusion> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-annotations</artifactId> + </exclusion> + <exclusion> + <groupId>com.google.collections</groupId> + <artifactId>google-collections</artifactId> + </exclusion> + <exclusion> + <groupId>javassist</groupId> + <artifactId>javassist</artifactId> + </exclusion> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + <exclusion> + <groupId>org.jboss.weld.servlet</groupId> + <artifactId>weld-servlet</artifactId> + </exclusion> + <exclusion> + <groupId>dom4j</groupId> + <artifactId>dom4j</artifactId> + </exclusion> + <exclusion> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + </exclusion> + <exclusion> + <groupId>javax.persistence</groupId> + <artifactId>persistence-api</artifactId> + </exclusion> + <exclusion> + <groupId>javax.el</groupId> + <artifactId>el-api</artifactId> + </exclusion> + <exclusion> + <groupId>javax.transaction</groupId> + <artifactId>jta</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> - <groupId>org.zkoss.common</groupId> - <artifactId>zcommon</artifactId> - <version>${zk.version}</version> - </dependency> - <dependency> - <groupId>org.zkoss.zk</groupId> - <artifactId>zkex</artifactId> - <version>${zk.version}</version> - </dependency> - <dependency> - <groupId>org.zkoss.zkforge.el</groupId> - <artifactId>zcommons-el</artifactId> - <version>${zkel.version}</version> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <version>${servlet-api.version}</version> - </dependency> - <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.version}</version> @@ -104,17 +226,6 @@ </exclusion> </exclusions> </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>${commons-lang.version}</version> - </dependency> - <dependency> - <groupId>org.beanshell</groupId> - <artifactId>bsh</artifactId> - <version>${bsh.version}</version> - <scope>runtime</scope> - </dependency> <!-- below are optional runtime database pool and drivers --> <dependency> <groupId>hsqldb</groupId> @@ -138,7 +249,7 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>3.8.1</version> + <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> Deleted: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/GenericSpringComposer.java 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,56 +0,0 @@ -package org.zkforge.zktodo2; - -import java.lang.reflect.Field; - -import javax.annotation.Resource; -import javax.servlet.ServletContext; - -import org.springframework.context.ApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; -import org.zkoss.zk.scripting.Namespace; -import org.zkoss.zk.ui.Component; -import org.zkoss.zk.ui.util.GenericForwardComposer; - -public class GenericSpringComposer extends GenericForwardComposer { - - private static final long serialVersionUID = -8554216461300908912L; - - private ServletContext servletContext = null; - - @Override - public void doAfterCompose(Component comp) throws Exception { - super.doAfterCompose(comp); - this.servletContext = (ServletContext) comp.getDesktop().getWebApp() - .getNativeContext(); - this.wireBeans(); - } - - @Override - public void didActivate(Namespace namespace) { - super.didActivate(namespace); - try { - this.wireBeans(); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - private void wireBeans() throws IllegalArgumentException, - IllegalAccessException { - ApplicationContext ctx = WebApplicationContextUtils - .getWebApplicationContext(this.servletContext); - Field[] fields = this.getClass().getDeclaredFields(); - for (Field f : fields) { - Resource annotation = f.getAnnotation(Resource.class); - if (annotation != null) { - f.setAccessible(true); // Make private fields accessible. - Object bean = ctx.getBean(annotation.name()); - f.set(this, bean); - } - - } - } - -} Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java 2010-11-21 21:42:06 UTC (rev 1102) @@ -19,6 +19,16 @@ import org.zkoss.zul.ListitemRenderer; import org.zkoss.zul.Textbox; +/** + * This class demonstrates "Model-View-Presenter" pattern as the Composer is + * doing all the explicit work of updating the UI. + * + * see http://martinfowler.com/eaaDev/uiArchs.html + * + * also known as Supervising Controller and Passive View. + * + * @author simon + */ public class ZkToDoControllerV1 extends GenericForwardComposer implements ListitemRenderer { Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV2.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV2.java 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV2.java 2010-11-21 21:42:06 UTC (rev 1102) @@ -14,6 +14,13 @@ import org.zkoss.zul.Listbox; import org.zkoss.zul.Textbox; +/** + * This class is more inline with true Model-View-Controller as the Composer + * class is not actively updating the view; it manipulates models that the + * view is observing. + * + * @author simon + */ public class ZkToDoControllerV2 extends GenericForwardComposer { private static final long serialVersionUID = 2560535692993939331L; Deleted: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV3.java 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,108 +0,0 @@ -package org.zkforge.zktodo2; - -import static java.lang.System.out; - -import java.util.Date; -import java.util.List; - -import javax.annotation.Resource; - -import org.zkoss.zk.ui.event.Event; -import org.zkoss.zul.Datebox; -import org.zkoss.zul.Intbox; -import org.zkoss.zul.ListModel; -import org.zkoss.zul.ListModelList; -import org.zkoss.zul.Listbox; -import org.zkoss.zul.Textbox; - -public class ZkToDoControllerV3 extends GenericSpringComposer { - - private static final long serialVersionUID = 2560535692993939331L; - protected transient Textbox name; - protected transient Intbox priority; - protected transient Datebox date; - protected transient Listbox list; - - public ZkToDoControllerV3(){ - return; - } - - @Resource(name="toDoModel") - protected transient ZkToDoModel toDoModel = null; - - public ZkToDoModel getToDoModel() { - return toDoModel; - } - - public void onClick$add(Event e) { - Date dateValue = date.getValue(); - Integer priorityValue = priority.getValue(); - String nameValue = name.getValue(); - if( dateValue != null && priorityValue != null && nameValue != null ){ - Reminder reminder = new Reminder(); - reminder.setDate(date.getValue()); - reminder.setName(name.getValue()); - reminder.setPriority(priority.getValue()); - this.toDoModel.persistEvent(reminder); - List<Reminder> reminders = this.toDoModel.findAll(); - ListModel listModel = this.list.getModel(); - ListModelList listModelList = (ListModelList)listModel; - listModelList.clear(); - listModelList.addAll(reminders); - } - return; - } - - public void onClick$update(Event e) { - Reminder selectedReminder = this.toDoModel.getSelectedReminder(); - if( selectedReminder != null ){ - ListModelList listModelList = (ListModelList)this.list.getModel(); - try { - this.toDoModel.mergeEvent(selectedReminder); - } catch (EntityNotFoundException exception){ - int index = list.getSelectedIndex(); - listModelList.remove(index); - alert("Reminder "+selectedReminder.getName()+" has been deleted by another user."); - if( listModelList.size() > 0 ){ - selectedReminder = (Reminder)listModelList.get(0); - list.setSelectedIndex(0); - name.setValue(selectedReminder.getName()); - date.setValue(selectedReminder.getDate()); - priority.setValue(selectedReminder.getPriority()); - } else { - selectedReminder = null; - } - } - List<Reminder> reminders = toDoModel.findAll(); - listModelList.clear(); - listModelList.addAll(reminders); - } - } - - public void onClick$delete(Event e) { - Reminder selectedReminder = this.toDoModel.getSelectedReminder(); - if( null != selectedReminder ){ - ListModel listModel = this.list.getModel(); - ListModelList listModelList = (ListModelList)listModel; - int index = listModelList.indexOf(selectedReminder); - try { - this.toDoModel.deleteEvent(selectedReminder); - } catch (EntityNotFoundException exception ){ - out.println("This is harmless as someone else has already deleted this item."); - } - listModelList.remove(selectedReminder); - if( index >= listModelList.size() ){ - index = listModelList.size() - 1; - } - if( listModelList.size() > 0 ){ - selectedReminder = (Reminder)listModelList.get(index); - list.setSelectedIndex(index); - name.setValue(selectedReminder.getName()); - date.setValue(selectedReminder.getDate()); - priority.setValue(selectedReminder.getPriority()); - } else { - selectedReminder = null; - } - } - } -} Modified: trunk/zktodo2/src/main/webapp/index.jsp =================================================================== --- trunk/zktodo2/src/main/webapp/index.jsp 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/src/main/webapp/index.jsp 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,6 +1,3 @@ Click <a href="zktodo_a.zul">here</a> for the original version of the zul from the <a href="http://www.zkoss.org/smalltalks/mvc4/">mvc4 article</a>. <br/> Click <a href="zktodo_b.zul">here</a> for the databindings version of the zul with an explicit model class. -<br/> -Click <a href="zktodo_c.zul">here</a> for the session clusterable version. -<br/> Deleted: trunk/zktodo2/src/main/webapp/zktodo_c.zul =================================================================== --- trunk/zktodo2/src/main/webapp/zktodo_c.zul 2010-11-17 15:50:34 UTC (rev 1101) +++ trunk/zktodo2/src/main/webapp/zktodo_c.zul 2010-11-21 21:42:06 UTC (rev 1102) @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<zk xmlns="http://www.zkoss.org/2005/zul"> -<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?> -<window id="container" title="To do list" width="640px" border="normal" apply="org.zkforge.zktodo2.ZkToDoControllerV3"> -<listbox id="list" multiple="true" rows="4" model="@{container$composer.toDoModel.reminders}" selectedItem="@{container$composer.toDoModel.selectedReminder}"> - <listhead> - <listheader label="Item" /> - <listheader label="Priority" width="80px" /> - <listheader label="Opened" width="90px" /> - </listhead> - <listitem self="@{each=reminder}"> - <listcell label="@{reminder.name}"/> - <listcell label="@{reminder.priority}"/> - <listcell label="@{reminder.date, converter='org.zkforge.zktodo2.DateFormatConverter'}"/> - </listitem> -</listbox> -<vbox> - <hbox> - Item:<textbox id="name" cols="40" constraint="no empty" value="@{container$composer.toDoModel.selectedReminder.name}"/> - Priority:<intbox id="priority" cols="1" constraint="no empty" value="@{container$composer.toDoModel.selectedReminder.priority}"/> - Date:<datebox id="date" cols="14" constraint="no empty" value="@{container$composer.toDoModel.selectedReminder.date}"/> - </hbox> - <hbox> - <button id="add" label="Add" width="36px" height="24px"/> - <button id="update" label="Update" width="46px" height="24px"/> - <button id="delete" label="Delete" width="46px" height="24px"/> - </hbox> -</vbox> -</window> -</zk> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2010-11-22 22:49:13
|
Revision: 1104 http://zkforge.svn.sourceforge.net/zkforge/?rev=1104&view=rev Author: simon_massey Date: 2010-11-22 22:49:06 +0000 (Mon, 22 Nov 2010) Log Message: ----------- tidy up of web.xml to get passed fussy sax parsers. Modified Paths: -------------- trunk/zktodo2/pom.xml trunk/zktodo2/src/main/resources/spring-context.xml trunk/zktodo2/src/main/webapp/WEB-INF/web.xml Added Paths: ----------- trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml Removed Paths: ------------- trunk/zktodo2/src/main/resources/META-INF/persistence.xml Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2010-11-22 21:34:05 UTC (rev 1103) +++ trunk/zktodo2/pom.xml 2010-11-22 22:49:06 UTC (rev 1104) @@ -4,9 +4,9 @@ <groupId>org.zkforge.zktodo2</groupId> <artifactId>zktodo2</artifactId> <packaging>war</packaging> - <version>1.2</version> + <version>1.3</version> <name>zktodo2</name> - <url>http://www.zkoss.org/smalltalks/mvc4/</url> + <url>http://java.dzone.com/articles/using-desktop-model-view</url> <repositories> <repository> <id>zk repository</id> @@ -18,7 +18,7 @@ <zkel.version>1.0.2</zkel.version> <spring.version>3.0.5.RELEASE</spring.version> <hsqldb.version>1.8.0.7</hsqldb.version> - <hibernate.version>3.3.2.GA</hibernate.version> + <hibernate.version>3.3.1.ga</hibernate.version> <commons-dbcp.version>1.2.2</commons-dbcp.version> <geronimo-jta.version>1.1.1</geronimo-jta.version> <commons-lang.version>2.4</commons-lang.version> @@ -27,6 +27,7 @@ <commons-io.version>1.4</commons-io.version> <servlet-api.version>2.4</servlet-api.version> <junit.version>4.7</junit.version> + <concurrent.version>1.3.4</concurrent.version> </properties> <dependencies> <dependency> @@ -50,6 +51,12 @@ <version>${commons-io.version}</version> </dependency> <dependency> + <groupId>concurrent</groupId> + <artifactId>concurrent</artifactId> + <version>${concurrent.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> Copied: trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml (from rev 1101, trunk/zktodo2/src/main/resources/META-INF/persistence.xml) =================================================================== --- trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml (rev 0) +++ trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml 2010-11-22 22:49:06 UTC (rev 1104) @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<persistence xmlns="http://java.sun.com/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" + version="1.0"> + <persistence-unit name="bookingDatabase" transaction-type="RESOURCE_LOCAL" /> +</persistence> \ No newline at end of file Deleted: trunk/zktodo2/src/main/resources/META-INF/persistence.xml =================================================================== --- trunk/zktodo2/src/main/resources/META-INF/persistence.xml 2010-11-22 21:34:05 UTC (rev 1103) +++ trunk/zktodo2/src/main/resources/META-INF/persistence.xml 2010-11-22 22:49:06 UTC (rev 1104) @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<persistence xmlns="http://java.sun.com/xml/ns/persistence" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" - version="1.0"> - <persistence-unit name="bookingDatabase" transaction-type="RESOURCE_LOCAL" /> -</persistence> \ No newline at end of file Modified: trunk/zktodo2/src/main/resources/spring-context.xml =================================================================== --- trunk/zktodo2/src/main/resources/spring-context.xml 2010-11-22 21:34:05 UTC (rev 1103) +++ trunk/zktodo2/src/main/resources/spring-context.xml 2010-11-22 22:49:06 UTC (rev 1104) @@ -19,7 +19,7 @@ <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" - p:persistence-xml-location="classpath:META-INF/persistence.xml" + p:persistence-xml-location="classpath:META-INF/persistence-spring.xml" p:data-source-ref="dataSource" > <property name="jpaVendorAdapter"> Modified: trunk/zktodo2/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/zktodo2/src/main/webapp/WEB-INF/web.xml 2010-11-22 21:34:05 UTC (rev 1103) +++ trunk/zktodo2/src/main/webapp/WEB-INF/web.xml 2010-11-22 22:49:06 UTC (rev 1104) @@ -3,10 +3,10 @@ "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>zktodo2</display-name> - <welcome-file-list> - <welcome-file>index.jsp</welcome-file> - <welcome-file>index.zul</welcome-file> - </welcome-file-list> + <context-param> + <param-name>contextConfigLocation</param-name> + <param-value>classpath:dataSourceContext.xml,classpath:spring-context.xml</param-value> + </context-param> <!-- Spring --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> @@ -17,19 +17,13 @@ within zk.xml --> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> - <context-param> - <param-name>contextConfigLocation</param-name> - <param-value>classpath:dataSourceContext.xml,classpath:spring-context.xml</param-value> - </context-param> <!-- ZK --> <listener> - <description>ZK listener for cleanup when a session is destroyed</description> <listener-class> org.zkoss.zk.ui.http.HttpSessionListener </listener-class> </listener> <servlet> - <description>ZK loader for ZUML pages</description> <servlet-name>zkLoader</servlet-name> <servlet-class> org.zkoss.zk.ui.http.DHtmlLayoutServlet @@ -40,23 +34,26 @@ </init-param> <load-on-startup>1</load-on-startup> </servlet> - <servlet-mapping> - <servlet-name>zkLoader</servlet-name> - <url-pattern>*.zul</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>zkLoader</servlet-name> - <url-pattern>*.zhtml</url-pattern> - </servlet-mapping> <servlet> - <description>The asynchronous update engine for ZK</description> <servlet-name>auEngine</servlet-name> <servlet-class> org.zkoss.zk.au.http.DHtmlUpdateServlet </servlet-class> </servlet> + <servlet-mapping> + <servlet-name>zkLoader</servlet-name> + <url-pattern>*.zul</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>zkLoader</servlet-name> + <url-pattern>*.zhtml</url-pattern> + </servlet-mapping> <servlet-mapping> <servlet-name>auEngine</servlet-name> <url-pattern>/zkau/*</url-pattern> </servlet-mapping> + <welcome-file-list> + <welcome-file>index.jsp</welcome-file> + <welcome-file>index.zul</welcome-file> + </welcome-file-list> </web-app> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2010-12-04 22:51:55
|
Revision: 1107 http://zkforge.svn.sourceforge.net/zkforge/?rev=1107&view=rev Author: simon_massey Date: 2010-12-04 22:51:47 +0000 (Sat, 04 Dec 2010) Log Message: ----------- MVVM command binder example. Modified Paths: -------------- trunk/zktodo2/pom.xml trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModelImpl.java trunk/zktodo2/src/main/resources/spring-context.xml trunk/zktodo2/src/main/webapp/index.jsp trunk/zktodo2/src/main/webapp/zktodo_a.zul trunk/zktodo2/src/main/webapp/zktodo_b.zul trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java Added Paths: ----------- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoViewModelImpl.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/Command.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandInit.java trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandSource.java trunk/zktodo2/src/main/webapp/zktodo_c.zul Removed Paths: ------------- trunk/zktodo2/src/main/java/org/zkforge/demo/ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java trunk/zktodo2/src/main/webapp/initController/ Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/pom.xml 2010-12-04 22:51:47 UTC (rev 1107) @@ -28,6 +28,8 @@ <servlet-api.version>2.4</servlet-api.version> <junit.version>4.7</junit.version> <concurrent.version>1.3.4</concurrent.version> + <zkspring.version>3.0RC</zkspring.version> + <commons-lang.version>2.5</commons-lang.version> </properties> <dependencies> <dependency> @@ -51,6 +53,12 @@ <version>${commons-io.version}</version> </dependency> <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>${commons-lang.version}</version> + <scope>compile</scope> + </dependency> + <dependency> <groupId>concurrent</groupId> <artifactId>concurrent</artifactId> <version>${concurrent.version}</version> @@ -120,6 +128,13 @@ </dependency> <dependency> <groupId>org.zkoss.zk</groupId> + <artifactId>zkspring-core</artifactId> + <version>${zkspring.version}</version> + <scope>runtime</scope> + + </dependency> + <dependency> + <groupId>org.zkoss.zk</groupId> <artifactId>zkplus</artifactId> <version>${zk.version}</version> <scope>compile</scope> Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/Reminder.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -9,35 +9,44 @@ import javax.persistence.Id; import javax.persistence.Table; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; + @Entity @Table(name = "REMINDER") public class Reminder { @Override public boolean equals(Object obj) { - if( obj instanceof Reminder ){ - Reminder other = (Reminder) obj; - if( this.getId() != null && other.getId() != null && this.getId().equals(other.getId())){ - return true; - } - } - return false; + if (obj == null) { return false; } + if (obj == this) { return true; } + if (obj.getClass() != getClass()) { + return false; + } + Reminder rhs = (Reminder) obj; + return new EqualsBuilder() + .appendSuper(super.equals(obj)) + .append(id, rhs.id) + .append(name, rhs.name) + .append(priority, rhs.priority) + .append(date, rhs.date) + .isEquals(); } @Override public int hashCode() { - return Long.valueOf(this.getId()).hashCode(); + return new HashCodeBuilder().append(id).append(name).append(priority).append(date).toHashCode(); } @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "REMINDER_ID") private Long id; @Column(name = "NAME") - private String name; + private String name = ""; @Column(name = "PRIORITY") - private int priority; + private int priority = 0; @Column(name = "DATE") - private Date date; + private Date date = new Date(System.currentTimeMillis()); public Reminder(){} public Reminder(String name,int priority,Date date){ Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ReminderService.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -24,17 +24,17 @@ } @Transactional(readOnly=false,propagation = Propagation.REQUIRED) - public void persistEvent(Reminder reminder){ + public void persist(Reminder reminder){ this.basicDao.persist(reminder); } @Transactional(readOnly=false,propagation = Propagation.REQUIRED) - public void deleteEvent(Reminder reminder) throws EntityNotFoundException { + public void delete(Reminder reminder) throws EntityNotFoundException { this.basicDao.remove(Reminder.class, reminder.getId()); } @Transactional(readOnly=false,propagation = Propagation.REQUIRED) - public void mergeEvent(Reminder reminder) throws EntityNotFoundException { + public void merge(Reminder reminder) throws EntityNotFoundException { this.basicDao.merge(reminder); } } Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoControllerV1.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -26,8 +26,6 @@ * see http://martinfowler.com/eaaDev/uiArchs.html * * also known as Supervising Controller and Passive View. - * - * @author simon */ public class ZkToDoControllerV1 extends GenericForwardComposer implements ListitemRenderer { @@ -84,7 +82,7 @@ reminder.setDate(date.getValue()); reminder.setName(name.getValue()); reminder.setPriority(priority.getValue()); - this.reminderService.persistEvent(reminder); + this.reminderService.persist(reminder); List<Reminder> reminders = this.reminderService.findAll(); this.listModelList.clear(); this.listModelList.addAll(reminders); @@ -98,7 +96,7 @@ selectedReminder.setPriority(priority.getValue()); selectedReminder.setName(name.getValue()); try { - this.reminderService.mergeEvent(selectedReminder); + this.reminderService.merge(selectedReminder); } catch (EntityNotFoundException exception){ int index = list.getSelectedIndex(); listModelList.remove(index); @@ -124,7 +122,7 @@ if( null != selectedReminder ){ int index = listModelList.indexOf(selectedReminder); try { - this.reminderService.deleteEvent(selectedReminder); + this.reminderService.delete(selectedReminder); } catch (EntityNotFoundException exception ){ out.println("This is harmless as someone else has already deleted this item."); } Deleted: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -1,26 +0,0 @@ -package org.zkforge.zktodo2; - -import java.util.List; - -public interface ZkToDoModel { - - public abstract void deleteEvent(Reminder reminder) - throws EntityNotFoundException; - - public abstract List<Reminder> findAll(); - - public abstract void mergeEvent(Reminder reminder) - throws EntityNotFoundException; - - public abstract void persistEvent(Reminder reminder); - - //used by selectedItem="@{controller.selectedReminder}" and others - public abstract Reminder getSelectedReminder(); - - //used by selectedItem="@{controller.selectedReminder}" and others - public abstract void setSelectedReminder(Reminder reminder); - - //used by model="@{controller.reminders}" - public abstract List<Reminder> getReminders(); - -} \ No newline at end of file Copied: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java (from rev 1101, trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java) =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModel.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -0,0 +1,33 @@ +package org.zkforge.zktodo2; + +import java.util.List; + + +/** + * This is an Application Model class as it exposes resource via methods such + * as "findAll" yet it also store the uses selection with get/setSelectedItem. + * + * @author simon + */ +public interface ZkToDoModel { + + public abstract void deleteEvent(Reminder reminder) + throws EntityNotFoundException; + + public abstract List<Reminder> findAll(); + + public abstract void mergeEvent(Reminder reminder) + throws EntityNotFoundException; + + public abstract void persistEvent(Reminder reminder); + + //used by selectedItem="@{controller.selectedReminder}" and others + public abstract Reminder getSelectedReminder(); + + //used by selectedItem="@{controller.selectedReminder}" and others + public abstract void setSelectedReminder(Reminder reminder); + + //used by model="@{controller.reminders}" + public abstract List<Reminder> getReminders(); + +} \ No newline at end of file Modified: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModelImpl.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModelImpl.java 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoModelImpl.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -3,14 +3,13 @@ import java.util.List; public class ZkToDoModelImpl implements ZkToDoModel { - // spring should re-wire this upon deserialization of the session scoped beans. - protected transient ReminderService reminderService; + protected ReminderService reminderService; /* (non-Javadoc) * @see org.zkforge.zktodo2.ZkToDoModel#deleteEvent(org.zkforge.zktodo2.Reminder) */ public void deleteEvent(Reminder reminder) throws EntityNotFoundException { - reminderService.deleteEvent(reminder); + reminderService.delete(reminder); } /* (non-Javadoc) @@ -24,14 +23,14 @@ * @see org.zkforge.zktodo2.ZkToDoModel#mergeEvent(org.zkforge.zktodo2.Reminder) */ public void mergeEvent(Reminder reminder) throws EntityNotFoundException { - reminderService.mergeEvent(reminder); + reminderService.merge(reminder); } /* (non-Javadoc) * @see org.zkforge.zktodo2.ZkToDoModel#persistEvent(org.zkforge.zktodo2.Reminder) */ public void persistEvent(Reminder reminder) { - reminderService.persistEvent(reminder); + reminderService.persist(reminder); } public ReminderService getReminderService() { @@ -42,7 +41,7 @@ this.reminderService = reminderService; } - protected Reminder selectedReminder = null; + protected Reminder selectedReminder; //used by selectedItem="@{controller.selectedReminder}" and others /* (non-Javadoc) Added: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoViewModelImpl.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoViewModelImpl.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/ZkToDoViewModelImpl.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -0,0 +1,86 @@ +package org.zkforge.zktodo2; + +import java.util.List; + +import org.zkforge.zktodo2.binding.Command; +import org.zkforge.zktodo2.binding.CommandSource; + +public class ZkToDoViewModelImpl implements CommandSource { + + public ZkToDoViewModelImpl(){ + this.selectedReminder = new Reminder(); + } + + protected Reminder selectedReminder; + + public Reminder getSelectedReminder() { + return selectedReminder; + } + + public void setSelectedReminder(Reminder reminder) { + this.selectedReminder = reminder; + if( this.selectedReminder == null ){ + this.selectedReminder = new Reminder(); + } + } + + protected ReminderService reminderService; + + public void setReminderService(ReminderService reminderService) { + this.reminderService = reminderService; + } + + public List<Reminder> getReminders() { + return this.reminderService.findAll(); + } + + public Command getCommand(final String name) { + Command command = null; + if( name.equals("add")){ + command = new Command() { + public void execute(Object... parameters) { + add(); + } + }; + } else if( name.equals("update")){ + command = new Command() { + public void execute(Object... parameters) { + update(); + } + }; + } else if( name.equals("delete")) { + command = new Command() { + public void execute(Object... parameters) { + delete(); + } + }; + } return command; + } + protected void delete() { + if( this.selectedReminder.getId() != null ){ + try { + this.reminderService.delete(selectedReminder); + this.selectedReminder = new Reminder(); + } catch (EntityNotFoundException e) { + e.printStackTrace(); + } + } + } + + protected void update() { + if( this.selectedReminder.getId() != null ){ + try { + this.reminderService.merge(selectedReminder); + } catch (EntityNotFoundException e) { + e.printStackTrace(); + } + } + } + + protected void add() { + if( this.selectedReminder.getId() == null ){ + this.reminderService.persist(this.selectedReminder); + this.selectedReminder = new Reminder(); + } + } +} Added: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/Command.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/Command.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/Command.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -0,0 +1,5 @@ +package org.zkforge.zktodo2.binding; + +public interface Command { + void execute(Object... parameters); +} Added: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandInit.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandInit.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandInit.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -0,0 +1,90 @@ +package org.zkforge.zktodo2.binding; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Page; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.sys.ComponentCtrl; +import org.zkoss.zk.ui.util.Initiator; +import org.zkoss.zk.ui.util.InitiatorExt; +import org.zkoss.zkplus.databind.DataBinder; +import org.zkoss.zul.api.Window; + +public class CommandInit extends DataBinder implements Initiator, InitiatorExt { + + private static final long serialVersionUID = 1L; + + public boolean doCatch(Throwable t) throws Exception { + return false; + } + + public void doFinally() throws Exception { + // nothing to do + } + + @SuppressWarnings("unchecked") + public void doInit(Page p, Map args) throws Exception { + // nothing to do + } + + public void doAfterCompose(Page p) throws Exception { + // nothing to do + } + + protected Page page = null; + + public void doAfterCompose(Page page, Component[] components) throws Exception { + this.page = page; + for( Component c : components ){ + if( Window.class.isAssignableFrom(c.getClass() )){ + for (@SuppressWarnings("unchecked") + final Iterator<Component> it = page.getRoots().iterator(); it.hasNext(); ) { + loadAnnotations((Component) it.next()); + } + return; + } + } + return; + } + + private void loadAnnotations(Component comp) { + + loadComponentPropertyAnnotationByAnnotName(comp, "default"); + + @SuppressWarnings("unchecked") + final List<Component> children = comp.getChildren(); + for (final Iterator<Component> it = children.iterator(); it.hasNext(); ) { + loadAnnotations((Component) it.next()); //recursive + } + return; + } + + protected void loadComponentPropertyAnnotationByAnnotName(Component comp, String annotName) { + ComponentCtrl compCtrl = (ComponentCtrl) comp; + @SuppressWarnings("unchecked") + final List<String> props = compCtrl.getAnnotatedPropertiesBy(annotName); + for (@SuppressWarnings("unchecked") + final Iterator it = props.iterator(); it.hasNext(); ) { + final String propName = (String) it.next(); + if( propName.startsWith("on") ){ + final Object[] annotationDetails = loadPropertyAnnotation(comp, propName, annotName); + String value = (String)annotationDetails[0]; + Object variable = page.getXelVariable(value); + CommandSource commandSource = (CommandSource) variable; + final Command command = commandSource.getCommand(comp.getId()); + if( command != null ){ + comp.addEventListener(propName, new EventListener() { + public void onEvent(Event event) throws Exception { + command.execute((Object[])null); + } + }); + } + } + } + } + +} Added: trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandSource.java =================================================================== --- trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandSource.java (rev 0) +++ trunk/zktodo2/src/main/java/org/zkforge/zktodo2/binding/CommandSource.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -0,0 +1,5 @@ +package org.zkforge.zktodo2.binding; + +public interface CommandSource { + Command getCommand(String name); +} Modified: trunk/zktodo2/src/main/resources/spring-context.xml =================================================================== --- trunk/zktodo2/src/main/resources/spring-context.xml 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/resources/spring-context.xml 2010-12-04 22:51:47 UTC (rev 1107) @@ -1,81 +1,92 @@ <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:tx="http://www.springframework.org/schema/tx" - xmlns:p="http://www.springframework.org/schema/p" - xmlns:aop="http://www.springframework.org/schema/aop" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" + xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd "> - + + <tx:annotation-driven /> + <!-- JPA config - --> - - <tx:annotation-driven /> + --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" p:persistence-xml-location="classpath:META-INF/persistence-spring.xml" - p:data-source-ref="dataSource" - > + p:data-source-ref="dataSource"> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" - p:showSql="true" - p:generateDdl="true"> + p:showSql="true" p:generateDdl="true"> </bean> </property> <property name="jpaProperties"> <value> - hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy - hibernate.dialect=${hibernate.dialect} - hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto} + hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy + hibernate.dialect=${hibernate.dialect} + hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto} </value> </property> </bean> - <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> + <bean + class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> - <!-- + <!-- JPA helpers - --> - - <bean id="basicDao" class="org.zkforge.zktodo2.BasicDao" /> + --> - <!-- - First article classes - --> + <bean id="basicDao" class="org.zkforge.zktodo2.BasicDao" /> - <bean id="reminderService" class="org.zkforge.zktodo2.ReminderService" - p:basicDao-ref="basicDao" - /> + <!-- + Classes used with MVP pattern version (original zkoss.org mvc4 + article) http://www.zkoss.org/smalltalks/mvc4/ + --> - <bean id="toDoControllerV1" class="org.zkforge.zktodo2.ZkToDoControllerV1" - p:reminderService-ref="reminderService" scope="prototype" - /> + <bean id="reminderService" class="org.zkforge.zktodo2.ReminderService" + p:basicDao-ref="basicDao" /> - <!-- - Data binding enhancement classes - --> + <bean id="toDoControllerV1" class="org.zkforge.zktodo2.ZkToDoControllerV1" + p:reminderService-ref="reminderService" scope="prototype" /> - <!-- - Note that the following bean is session scoped. - --> - <bean id="toDoModel" class="org.zkforge.zktodo2.ZkToDoModelImpl" - p:reminderService-ref="reminderService" scope="session"> - <!-- - // scoped proxy is commented out as only referenced by a prototype bean - // if you wanted to pass this bean to a singleton you need to include - // the following configurration. - <aop:scoped-proxy proxy-target-class="false"/> - --> + <!-- + ZK-Spring support for beans scoped to the Zk Desktop + --> + + <bean class="org.springframework.beans.factory.config.CustomScopeConfigurer"> + <property name="scopes"> + <map> + <entry key="desktop"> + <bean class="org.zkoss.spring.web.context.request.DesktopScope" /> + </entry> + </map> + </property> </bean> + + <!-- + Classes used with MVC pattern version (dzon.com mvc article) + http://java.dzone.com/articles/using-desktop-model-view + --> - <bean id="toDoControllerV2" class="org.zkforge.zktodo2.ZkToDoControllerV2" - p:toDoModel-ref="toDoModel" scope="prototype" - /> - + <!-- + Note that the following bean is desktop scoped. + --> + <bean id="toDoModel" class="org.zkforge.zktodo2.ZkToDoModelImpl" + p:reminderService-ref="reminderService" scope="desktop" /> + + <bean id="toDoControllerV2" class="org.zkforge.zktodo2.ZkToDoControllerV2" + p:toDoModel-ref="toDoModel" scope="prototype" /> + + <!-- + MVVM version + --> + + <bean id="toDoViewModel" class="org.zkforge.zktodo2.ZkToDoViewModelImpl" + p:reminderService-ref="reminderService" scope="desktop" /> + + </beans> Modified: trunk/zktodo2/src/main/webapp/index.jsp =================================================================== --- trunk/zktodo2/src/main/webapp/index.jsp 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/webapp/index.jsp 2010-12-04 22:51:47 UTC (rev 1107) @@ -1,3 +1,6 @@ Click <a href="zktodo_a.zul">here</a> for the original MVP version of the zul from the <a href="http://www.zkoss.org/smalltalks/mvc4/">mvc4 article</a>. <br/> Click <a href="zktodo_b.zul">here</a> for the databindings MVC version of the zul with an explicit model class. +<br/> +Click <a href="zktodo_c.zul">here</a> for the MVVM version. + Modified: trunk/zktodo2/src/main/webapp/zktodo_a.zul =================================================================== --- trunk/zktodo2/src/main/webapp/zktodo_a.zul 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/webapp/zktodo_a.zul 2010-12-04 22:51:47 UTC (rev 1107) @@ -3,7 +3,7 @@ <?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> <zk xmlns="http://www.zkoss.org/2005/zul"> <window title="To Do List" width="640px" border="normal" apply="${toDoControllerV1}"> -<listbox id="list" multiple="true" rows="4"> +<listbox id="list" multiple="true" rows="12"> <listhead> <listheader label="Item" /> <listheader label="Priority" width="80px" /> Modified: trunk/zktodo2/src/main/webapp/zktodo_b.zul =================================================================== --- trunk/zktodo2/src/main/webapp/zktodo_b.zul 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/main/webapp/zktodo_b.zul 2010-12-04 22:51:47 UTC (rev 1107) @@ -4,7 +4,7 @@ <?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> <zk xmlns="http://www.zkoss.org/2005/zul"> <window title="To Do List" width="640px" border="normal" apply="${toDoControllerV2}"> -<listbox id="list" multiple="true" rows="4" model="@{toDoModel.reminders}" selectedItem="@{toDoModel.selectedReminder}"> +<listbox id="list" multiple="true" rows="12" model="@{toDoModel.reminders}" selectedItem="@{toDoModel.selectedReminder}"> <listhead> <listheader label="Item" /> <listheader label="Priority" width="80px" /> Added: trunk/zktodo2/src/main/webapp/zktodo_c.zul =================================================================== --- trunk/zktodo2/src/main/webapp/zktodo_c.zul (rev 0) +++ trunk/zktodo2/src/main/webapp/zktodo_c.zul 2010-12-04 22:51:47 UTC (rev 1107) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?page title="ZkTodo2 - MVVM Example"?> +<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?> +<?init class="org.zkforge.zktodo2.binding.CommandInit" ?> +<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> +<zk xmlns="http://www.zkoss.org/2005/zul"> +<window title="To Do List" width="640px" border="normal"> +<listbox id="list" multiple="true" rows="12" model="@{toDoViewModel.reminders, load-after='add.onClick,update.onClick,delete.onClick'}" selectedItem="@{toDoViewModel.selectedReminder}"> + <listhead> + <listheader label="Item" /> + <listheader label="Priority" width="80px" /> + <listheader label="Opened" width="90px" /> + </listhead> + <listitem self="@{each=reminder}"> + <listcell label="@{reminder.name}"/> + <listcell label="@{reminder.priority}"/> + <listcell label="@{reminder.date, converter='org.zkforge.zktodo2.DateFormatConverter'}"/> + </listitem> +</listbox> +<vbox> + <hbox> + Item:<textbox cols="40" constraint="no empty" + value="@{toDoViewModel.selectedReminder.name, load-after='add.onClick,delete.onClick'}"/> + Priority:<intbox id="priority" cols="1" constraint="no empty" + value="@{toDoViewModel.selectedReminder.priority, load-after='add.onClick,delete.onClick'}"/> + Date:<datebox id="date" cols="14" constraint="no empty" + value="@{toDoViewModel.selectedReminder.date, load-after='add.onClick,delete.onClick'}"/> + </hbox> + <hbox> + <button id="add" label="Add" width="36px" height="24px" onClick="@{toDoViewModel}"/> + <button id="update" label="Update" width="46px" height="24px" onClick="@{toDoViewModel}"/> + <button id="delete" label="Delete" width="46px" height="24px" onClick="@{toDoViewModel}"/> + </hbox> +</vbox> +</window> +</zk> Modified: trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java =================================================================== --- trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java 2010-11-24 10:00:10 UTC (rev 1106) +++ trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java 2010-12-04 22:51:47 UTC (rev 1107) @@ -89,11 +89,11 @@ Calendar calender = Calendar.getInstance(); calender.set(1975, 5, 19); Reminder reminder = new Reminder("My Birthday", 2, calender.getTime()); - reminderService.persistEvent(reminder); + reminderService.persist(reminder); assertNotNull(reminder.getId()); calender.set(1979, 4, 8); Reminder event2 = new Reminder("My Ladies Birthday", 1, calender.getTime()); - reminderService.persistEvent(event2); + reminderService.persist(event2); assertNotNull(event2.getId()); List<Reminder> reminders = reminderService.findAll(); assertEquals(2, reminders.size()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2010-12-05 11:04:48
|
Revision: 1108 http://zkforge.svn.sourceforge.net/zkforge/?rev=1108&view=rev Author: simon_massey Date: 2010-12-05 11:04:42 +0000 (Sun, 05 Dec 2010) Log Message: ----------- removed deprecated spring2.0 test classes. Modified Paths: -------------- trunk/zktodo2/pom.xml trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2010-12-04 22:51:47 UTC (rev 1107) +++ trunk/zktodo2/pom.xml 2010-12-05 11:04:42 UTC (rev 1108) @@ -131,7 +131,40 @@ <artifactId>zkspring-core</artifactId> <version>${zkspring.version}</version> <scope>runtime</scope> - + <exclusions> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.web.servlet</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.web</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.context</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.context.support</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.transaction</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.aop</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.expression</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>org.springframework.asm</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.zkoss.zk</groupId> Modified: trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml =================================================================== --- trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml 2010-12-04 22:51:47 UTC (rev 1107) +++ trunk/zktodo2/src/main/resources/META-INF/persistence-spring.xml 2010-12-05 11:04:42 UTC (rev 1108) @@ -3,5 +3,5 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> - <persistence-unit name="bookingDatabase" transaction-type="RESOURCE_LOCAL" /> + <persistence-unit name="reminderDatabase" transaction-type="RESOURCE_LOCAL" /> </persistence> \ No newline at end of file Modified: trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java =================================================================== --- trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java 2010-12-04 22:51:47 UTC (rev 1107) +++ trunk/zktodo2/src/test/java/org/zkforge/zktodo2/ReminderTest.java 2010-12-05 11:04:42 UTC (rev 1108) @@ -1,61 +1,43 @@ package org.zkforge.zktodo2; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.util.Calendar; import java.util.List; import javax.sql.DataSource; -import org.springframework.test.AbstractDependencyInjectionSpringContextTests; -import org.springframework.test.jpa.AbstractJpaTests; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.transaction.annotation.Transactional; -public class ReminderTest extends AbstractJpaTests { +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(locations={"classpath:dataSourceContext.xml","classpath:spring-context.xml"}) +@Transactional +public class ReminderTest { - public ReminderTest() { - this - .setAutowireMode(AbstractDependencyInjectionSpringContextTests.AUTOWIRE_BY_NAME); - } - - public String[] getConfigLocations() { - return new String[] { "classpath:dataSourceContext.xml", - "classpath:spring-context.xml" }; - } - + @Autowired protected DataSource dataSource; - public DataSource getDataSource() { - return dataSource; - } - - public void setDataSource(DataSource dataSource) { - this.dataSource = dataSource; - } - + @Autowired protected BasicDao basicDao; - public BasicDao getBasicDao() { - return basicDao; - } - - public void setBasicDao(BasicDao basicDao) { - this.basicDao = basicDao; - } - + @Autowired protected ReminderService reminderService; - public ReminderService getReminderService() { - return reminderService; - } - - public void setReminderService(ReminderService reminderService) { - this.reminderService = reminderService; - } - + @Test public void testConfig() throws Exception { assertNotNull(dataSource); assertNotNull(basicDao); assertNotNull(reminderService); } + @Test public void testBasicDao() throws Exception { Calendar calender = Calendar.getInstance(); calender.set(1975, 5, 19); @@ -85,6 +67,7 @@ assertTrue(foundHerDay); } + @Test public void testEventModel() throws Exception { Calendar calender = Calendar.getInstance(); calender.set(1975, 5, 19); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sim...@us...> - 2011-12-03 20:47:00
|
Revision: 1132 http://zkforge.svn.sourceforge.net/zkforge/?rev=1132&view=rev Author: simon_massey Date: 2011-12-03 20:46:54 +0000 (Sat, 03 Dec 2011) Log Message: ----------- THE ZkToDo2 SUBPROJECT HAS MOVED TO GitHub https://github.com/simbo1905/ZkToDo2 Modified Paths: -------------- trunk/zktodo2/pom.xml trunk/zktodo2/readme.txt trunk/zktodo2/src/main/webapp/index.jsp Modified: trunk/zktodo2/pom.xml =================================================================== --- trunk/zktodo2/pom.xml 2011-12-01 04:13:24 UTC (rev 1131) +++ trunk/zktodo2/pom.xml 2011-12-03 20:46:54 UTC (rev 1132) @@ -6,6 +6,7 @@ <packaging>war</packaging> <version>1.4</version> <name>zktodo2</name> + <description>This project has moved to https://github.com/simbo1905/ZkToDo2</description> <url>http://java.dzone.com/articles/using-desktop-model-view</url> <repositories> <repository> Modified: trunk/zktodo2/readme.txt =================================================================== --- trunk/zktodo2/readme.txt 2011-12-01 04:13:24 UTC (rev 1131) +++ trunk/zktodo2/readme.txt 2011-12-03 20:46:54 UTC (rev 1132) @@ -1,3 +1,10 @@ + +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +THIS PROJECT HAS MOVED TO https://github.com/simbo1905/ZkToDo2 +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= + Installation: 1 Deploy this application to Tomcat by copying the zktodo2-X.X.war file to the directory $TOMCAT_HOME/webapps/. Tomcat will handle the rest of work, including unzipping and deploying. Modified: trunk/zktodo2/src/main/webapp/index.jsp =================================================================== --- trunk/zktodo2/src/main/webapp/index.jsp 2011-12-01 04:13:24 UTC (rev 1131) +++ trunk/zktodo2/src/main/webapp/index.jsp 2011-12-03 20:46:54 UTC (rev 1132) @@ -1,4 +1,10 @@ <br/> +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +THIS PROJECT HAS MOVED TO https://github.com/simbo1905/ZkToDo2 +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +<br/> Click <a href="zktodo_c.zul">here</a> for the MVB aka MVVM version based on the approach presented at the <a href="http://dl.dropbox.com/u/2622674/zk/zk-mvvm.pdf">2010 UK ZK Users Group</a>. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |