Hi again, Tks for your great example, i do every thing, and i found a problem, in the function remove:
protected boolean removeEntry(String id) { ScheduleEntry entry = null; String currentId = null; System.out.println("++++++++++++++++"+entries.size());//*1 for(ScheduleEntry se : (TreeSet<ScheduleEntry>)entries) { if((currentId = se.getId()) != null && currentId.equals(id)) { entry = se; break; } } if(entry != null) { entries.remove(entry); entry = null; return true; } return false; } the id that i select its correct in the funcion, the problem is the entries dont have values! i println the entries.size() and its 0. i add the entries like that: private ScheduleModel model; entry.setId(cod_cal); entry.setStartTime(startTime); entry.setEndTime(endTime); entry.setTitle(title); entry.setDescription(description); model.addEntry(entry); model.refresh(); i try delete like that: ExtendedScheduleModel foo = new ExtendedScheduleModel(); DefaultScheduleEntry entry = new DefaultScheduleEntry(); entry.setId("10"); foo.removeEntry(entry); if i add the entries like that: private ExtendedScheduleModel sss ; entry.setId(cod_cal); entry.setStartTime(startTime); entry.setEndTime(endTime); entry.setTitle(title); entry.setDescription(description); sss.addEntry(entry); sss.refresh(); blank page... Any sujection? Tks for all you are doing! Michał 'Gandalf' Stawicki wrote: > > Right, it was fubar'ed, SimpleScheduleModel wasn't meant for extending > :) This works - you use like you tried at the beginning - create > entry, set id and you can remove it. BTW: I think your bean should be > session, not request, unless you intended so. > > /* > * Licensed to the Apache Software Foundation (ASF) under one > * or more contributor license agreements. See the NOTICE file > * distributed with this work for additional information > * regarding copyright ownership. The ASF licenses this file > * to you under the Apache License, Version 2.0 (the > * "License"); you may not use this file except in compliance > * with the License. You may obtain a copy of the License at > * > * http://www.apache.org/licenses/LICENSE-2.0 > * > * Unless required by applicable law or agreed to in writing, > * software distributed under the License is distributed on an > * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > * KIND, either express or implied. See the License for the > * specific language governing permissions and limitations > * under the License. > */ > > package ########### > > import java.io.Serializable; > > import java.text.DateFormat; > import java.text.SimpleDateFormat; > import java.util.ArrayList; > import java.util.Collection; > import java.util.Date; > import java.util.HashMap; > import java.util.Iterator; > import java.util.TreeSet; > import org.apache.myfaces.custom.schedule.model.AbstractScheduleModel; > import org.apache.myfaces.custom.schedule.model.Day; > import org.apache.myfaces.custom.schedule.model.DefaultScheduleEntry; > import org.apache.myfaces.custom.schedule.model.ScheduleEntry; > > import org.apache.myfaces.custom.schedule.util.ScheduleEntryComparator; > > /** > * <p> > * A simple implementation of the ScheduleModel, not backed by any kind of > * datasource: entries have to be added manually. > * </p> > * > * @author Jurgen Lust (latest modification by $Author: werpu $) > * @version $Revision: 371736 $ > */ > public class ExtendedScheduleModel extends AbstractScheduleModel > implements Serializable > { > > > // TEST > // public static void main(String [] args) > // { > // ExtendedScheduleModel foo = new ExtendedScheduleModel(); > // DefaultScheduleEntry bar = new DefaultScheduleEntry(); > // bar.setId("1"); > // foo.addEntry(bar); > // DefaultScheduleEntry bar2 = new DefaultScheduleEntry(); > // bar2.setId("1"); > // > // foo.removeEntry(bar2); > // } > > > private static final long serialVersionUID = 1L; > protected final TreeSet entries; > protected final HashMap holidays; > protected final DateFormat holidayFormat = new > SimpleDateFormat("yyyyMMdd"); > > public ExtendedScheduleModel() > { > this.entries = new TreeSet(new ScheduleEntryComparator()); > this.holidays = new HashMap(); > } > > /** > * Set the name of a holiday. > * > * @param date > * the date > * @param holidayName > * the name of the holiday > */ > public void setHoliday(Date date, String holidayName) > { > if (date == null) > { > return; > } > > String key = holidayFormat.format(date); > holidays.put(key, holidayName); > } > > /** > * Add an entry to the model. > * > * @param entry > * the entry to add > */ > public void addEntry(ScheduleEntry entry) > { > entries.add(entry); > } > > /** > * Remove an entry from the model. > * > * @param entry > * the entry to remove > */ > public void removeEntry(ScheduleEntry entry) > { > if(entries.remove(entry)) > return; > > if(entry != null && entry.getId() != null) > removeEntry(entry.getId()); > } > > /** > * @see > org.apache.myfaces.custom.schedule.model.ScheduleModel#removeSelectedEntry() > */ > public void removeSelectedEntry() > { > if (!isEntrySelected()) > return; > removeEntry(getSelectedEntry()); > setSelectedEntry(null); > refresh(); > } > > /** > * @see > org.apache.myfaces.custom.schedule.model.AbstractScheduleModel#loadEntries(java.util.Date, > * java.util.Date) > */ > protected Collection loadEntries(Date startDate, Date endDate) > { > ArrayList selection = new ArrayList(); > > for (Iterator entryIterator = entries.iterator(); entryIterator > .hasNext();) > { > ScheduleEntry entry = (ScheduleEntry) > entryIterator.next(); > > if (entry.getEndTime().before(startDate) > || entry.getStartTime().after(endDate)) > { > continue; > } > > selection.add(entry); > } > > return selection; > } > > /** > * @see > org.apache.myfaces.custom.schedule.model.AbstractScheduleModel#loadDayAttributes(org.apache.myfaces.custom.schedule.model.Day) > */ > protected void loadDayAttributes(Day day) > { > if (day == null) > return; > String key = holidayFormat.format(day.getDate()); > String holiday = (String) holidays.get(key); > if (holiday != null) > { > day.setSpecialDayName(holiday); > day.setWorkingDay(false); > } > else > { > day.setSpecialDayName(null); > day.setWorkingDay(true); > } > } > > /** > * Remove entry from model > * <br /><br /> > * @param id identifier of entry to be removed > * <br /><br /> > * @return true on success and false on failure (in case entry with > specified id wasn't found) > * > */ > protected boolean removeEntry(String id) > { > ScheduleEntry entry = null; > String currentId = null; > > for(ScheduleEntry se : (TreeSet<ScheduleEntry>)entries) > { > if((currentId = se.getId()) != null && > currentId.equals(id)) > { > entry = se; > break; > } > } > > if(entry != null) > { > entries.remove(entry); > entry = null; > > return true; > } > > return false; > } > } > > > On 17/08/07, ignicolist <[EMAIL PROTECTED]> wrote: >> >> i have the class correct without errors. But when i call it show a blank >> page! >> >> ExtendedScheduleModel x = new ExtendedScheduleModel(); >> x.Remove2("8"); >> >> I call the class like that. I think its correct! so why the blank page? >> if i >> put thouse two code lines in comments dont have the blank page, so the >> problem is the class! :-(( >> >> >> >> >> >> >> Michał 'Gandalf' Stawicki wrote: >> > >> > Try this, remember to set valid package: >> > >> > #####SET ME package #####SET ME >> > >> > import java.util.TreeSet; >> > import org.apache.myfaces.custom.schedule.model.ScheduleEntry; >> > import org.apache.myfaces.custom.schedule.model.SimpleScheduleModel; >> > >> > /** >> > * @author mstawick >> > */ >> > public class ExtendedScheduleModel extends SimpleScheduleModel >> > { >> > >> > /** Creates a new instance of ExtendedScheduleModel */ >> > public ExtendedScheduleModel() >> > { >> > super(); >> > } >> > >> > /** >> > * Remove entry from model >> > * <br /><br /> >> > * @param id identifier of entry to be removed >> > * <br /><br /> >> > * @return true on success and false on failure (in case entry >> with >> > specified id wasn't found) >> > * >> > */ >> > public boolean removeEntry(String id) >> > { >> > ScheduleEntry entry = null; >> > String currentId = null; >> > >> > for(ScheduleEntry se : entries) >> > { >> > if((currentId = se.getId()) != null && >> currentId.equals(id)) >> > { >> > entry = se; >> > break; >> > } >> > } >> > >> > if(entry != null) >> > { >> > entries.remove(entry); >> > entry = null; >> > >> > return true; >> > } >> > >> > return false; >> > } >> > >> > private TreeSet<ScheduleEntry> entries; >> > } >> > >> > >> > On 17/08/07, ignicolist <[EMAIL PROTECTED]> wrote: >> >> >> >> Sorry to bee so boring and noob, but i realy need to do this, i need a >> >> funcionality to show and occult calendars, and i have a entry >> associate >> >> to a >> >> calendar, so when i need occult the calendar i need to remove the >> >> entries >> >> of that calendar from the model. everything working, just need remove >> the >> >> entries. >> >> >> >> >> >> >> >> ignicolist wrote: >> >> > >> >> > Well i am a litle noob to all these, so i cant put your ideas to >> work! >> >> > :-(( >> >> > >> >> > So i am using SimpleScheduleModel, so you say to create that class >> in >> >> the >> >> > component Schedule or in my aplication? >> >> > Because i create the class in my aplication and don´t work. Dam this >> is >> >> so >> >> > complicated... >> >> > >> >> > >> >> > >> >> > Michał 'Gandalf' Stawicki wrote: >> >> >> >> >> >> I wrote the code in 'on the fly' just to give you idea how should >> it >> >> >> look, I didn't try it >> >> >> >> >> >> On 17/08/07, Michał 'Gandalf' Stawicki <[EMAIL PROTECTED]> wrote: >> >> >>> Simply casting it should be fine: >> >> >>> >> >> >>> for(ScheduleEntry e : (TreeSet<ScheduleEntry>)entries) >> >> >>> >> >> >>> >> >> >>> On 17/08/07, ignicolist <[EMAIL PROTECTED]> wrote: >> >> >>> > >> >> >>> > I try what you say but give me a error in: for(ScheduleEntry e : >> >> >>> entries) >> >> >>> > The Error: Type mismatch: cannot convert from element type >> Object >> >> to >> >> >>> > ScheduleEntry >> >> >>> > >> >> >>> > Any idea? >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > Michał 'Gandalf' Stawicki wrote: >> >> >>> > > >> >> >>> > > From SimpleScheduleModel.java >> >> >>> > > >> >> >>> > > /** >> >> >>> > > * Remove an entry from the model. >> >> >>> > > * >> >> >>> > > * @param entry >> >> >>> > > * the entry to remove >> >> >>> > > */ >> >> >>> > > public void removeEntry(ScheduleEntry entry) >> >> >>> > > { >> >> >>> > > entries.remove(entry); >> >> >>> > > } >> >> >>> > > >> >> >>> > > ... >> >> >>> > > >> >> >>> > > private final TreeSet entries; >> >> >>> > > >> >> >>> > > I don't know which model your using, but if it is >> >> >>> SimpleScheduleModel >> >> >>> > > than you should extend it and implement your own method, ex; >> >> >>> > > >> >> >>> > > public boolean removeEntry(String id) >> >> >>> > > { >> >> >>> > > ScheduleEntry entry = null; >> >> >>> > > >> >> >>> > > if(entries != null && id != null) >> >> >>> > > for(ScheduleEntry e : entries) >> >> >>> > > { >> >> >>> > > if(e.getId() != null && e.getId().equals(id)) >> >> >>> > > { >> >> >>> > > entry = e; >> >> >>> > > break; >> >> >>> > > } >> >> >>> > > } >> >> >>> > > >> >> >>> > > if(entry != null) >> >> >>> > > { >> >> >>> > > entries.remove(entry); >> >> >>> > > return true; >> >> >>> > > } >> >> >>> > > >> >> >>> > > return false; >> >> >>> > > } >> >> >>> > > >> >> >>> > > >> >> >>> > > >> >> >>> > > On 17/08/07, Michał 'Gandalf' Stawicki <[EMAIL PROTECTED]> >> >> wrote: >> >> >>> > >> I believe you have to pass exact reference to object that was >> >> added >> >> >>> to >> >> >>> > >> schedule, not some other object containing same data, >> example: >> >> >>> > >> >> >> >>> > >> ScheduleEntry foo = new MyScheduleEntry("bar"); >> >> >>> > >> ScheduleEntry foo2 = new MyScheduleEntry("bar"); >> >> >>> > >> >> >> >>> > >> model.addEntry(foo); >> >> >>> > >> >> >> >>> > >> model.removeEntry(foo2); // wrong >> >> >>> > >> mode.removeEntry(foo); //ok >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> On 17/08/07, ignicolist <[EMAIL PROTECTED]> wrote: >> >> >>> > >> > >> >> >>> > >> > Yes, because the entry when i select it remove with >> >> >>> > >> > model.removeSelectedEntry(); but if i specify his id: >> >> >>> > >> entry.setId("1"); >> >> >>> > >> > model.removeEntry(entry); dont eliminate. And ids are the >> same >> >> in >> >> >>> the >> >> >>> > >> two >> >> >>> > >> > situacions. >> >> >>> > >> > >> >> >>> > >> > >> >> >>> > >> > >> >> >>> > >> > >> >> >>> > >> > Jurgen Lust-2 wrote: >> >> >>> > >> > > >> >> >>> > >> > > In your model implementation, do you load the persistent >> >> entry >> >> >>> from >> >> >>> > >> the >> >> >>> > >> > > database, using the supplied id, before you delete it? >> >> >>> > >> > > >> >> >>> > >> > > Jurgen >> >> >>> > >> > > >> >> >>> > >> > > Op donderdag 16-08-2007 om 14:01 uur [tijdzone -0700], >> >> schreef >> >> >>> > >> > > ignicolist: >> >> >>> > >> > >> Its what i am doing but don´t work! >> >> >>> > >> > >> >> >> >>> > >> > >> an example: >> >> >>> > >> > >> >> >> >>> > >> > >> DefaultScheduleEntry entry = new DefaultScheduleEntry(); >> >> >>> > >> > >> >> >> >>> > >> > >> entry.setId("1"); >> >> >>> > >> > >> model.removeEntry(entry); >> >> >>> > >> > >> >> >> >>> > >> > >> this code is supose to remove the entry from de model >> with >> >> id >> >> >>> 1 no? >> >> >>> > >> i >> >> >>> > >> > >> just >> >> >>> > >> > >> want remove de entry from the model, but a entry specify >> by >> >> >>> me. >> >> >>> > >> > >> >> >> >>> > >> > >> >> >> >>> > >> > >> >> >> >>> > >> > >> >> >> >>> > >> > >> >> >> >>> > >> > >> Jurgen Lust-2 wrote: >> >> >>> > >> > >> > >> >> >>> > >> > >> > The ScheduleModel.removeEntry() method expects a >> >> >>> ScheduleEntry as >> >> >>> > >> > >> > parameter. I suppose you use Hibernate for database >> >> access, >> >> >>> so >> >> >>> > >> what you >> >> >>> > >> > >> > should do is retrieve the ScheduleEntry from the >> >> database, >> >> >>> using >> >> >>> > >> the >> >> >>> > >> > >> id, >> >> >>> > >> > >> > and feed the result to the removeEntry method. In that >> >> >>> removeEntry >> >> >>> > >> > >> > method, you just delete it with your Hibernate DAO. >> >> >>> > >> > >> > You could of course add a method >> >> >>> removeEntry(String/Long/Whatever >> >> >>> > >> id) >> >> >>> > >> > >> > that does all of this. >> >> >>> > >> > >> > >> >> >>> > >> > >> > Jurgen >> >> >>> > >> > >> > >> >> >>> > >> > >> > >> >> >>> > >> > >> > >> >> >>> > >> > >> > Op donderdag 16-08-2007 om 11:20 uur [tijdzone -0700], >> >> >>> schreef >> >> >>> > >> > >> > ignicolist: >> >> >>> > >> > >> >> Hi to all, i want to eliminate a especific entry in a >> >> model >> >> >>> of >> >> >>> > >> > >> schedule >> >> >>> > >> > >> >> tomahawk. the example in remove a selected entry work >> >> fine, >> >> >>> but >> >> >>> > >> how to >> >> >>> > >> > >> >> eliminate a determinated entry? >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> i try with this code: >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> DefaultScheduleEntry entry = new >> DefaultScheduleEntry(); >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> entry.setId(select); >> >> >>> > >> > >> >> entry.setStartTime(start); >> >> >>> > >> > >> >> entry.setEndTime(end); >> >> >>> > >> > >> >> entry.setTitle(select7); >> >> >>> > >> > >> >> entry.setDescription(select2); >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> model.removeEntry(entry); >> >> >>> > >> > >> >> model.refresh(); >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> i defined every value for the entry, and then i want >> to >> >> >>> remove >> >> >>> > >> that >> >> >>> > >> > >> >> entry! >> >> >>> > >> > >> >> Any help please! >> >> >>> > >> > >> >> >> >> >>> > >> > >> >> Tks for all. >> >> >>> > >> > >> > -- >> >> >>> > >> > >> > Jurgen Lust <[EMAIL PROTECTED]> >> >> >>> > >> > >> > >> >> >>> > >> > >> > >> >> >>> > >> > >> > >> >> >>> > >> > >> >> >> >>> > >> > > -- >> >> >>> > >> > > Jurgen Lust <[EMAIL PROTECTED]> >> >> >>> > >> > > >> >> >>> > >> > > >> >> >>> > >> > > >> >> >>> > >> > >> >> >>> > >> > -- >> >> >>> > >> > View this message in context: >> >> >>> > >> >> >> >>> >> >> >> http://www.nabble.com/Re%3A-Remove-Entry-from-schedule-Tomahawk-tf4281655.html#a12198391 >> >> >>> > >> > Sent from the MyFaces - Users mailing list archive at >> >> Nabble.com. >> >> >>> > >> > >> >> >>> > >> > >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> -- >> >> >>> > >> Michał Stawicki >> >> >>> > >> >> >> >>> > >> [EMAIL PROTECTED] >> >> >>> > >> http://stawicki.jasliska.pl >> >> >>> > >> >> >> >>> > > >> >> >>> > > >> >> >>> > > -- >> >> >>> > > Michał Stawicki >> >> >>> > > >> >> >>> > > [EMAIL PROTECTED] >> >> >>> > > http://stawicki.jasliska.pl >> >> >>> > > >> >> >>> > > >> >> >>> > >> >> >>> > -- >> >> >>> > View this message in context: >> >> >>> >> >> >> http://www.nabble.com/Re%3A-Remove-Entry-from-schedule-Tomahawk-tf4281655.html#a12200949 >> >> >>> > Sent from the MyFaces - Users mailing list archive at >> Nabble.com. >> >> >>> > >> >> >>> > >> >> >>> >> >> >>> >> >> >>> -- >> >> >>> Michał Stawicki >> >> >>> >> >> >>> [EMAIL PROTECTED] >> >> >>> http://stawicki.jasliska.pl >> >> >>> >> >> >> >> >> >> >> >> >> -- >> >> >> Michał Stawicki >> >> >> >> >> >> [EMAIL PROTECTED] >> >> >> http://stawicki.jasliska.pl >> >> >> >> >> >> >> >> > >> >> > >> >> >> >> -- >> >> View this message in context: >> >> >> http://www.nabble.com/Re%3A-Remove-Entry-from-schedule-Tomahawk-tf4281655.html#a12201958 >> >> Sent from the MyFaces - Users mailing list archive at Nabble.com. >> >> >> >> >> > >> > >> > -- >> > Michał Stawicki >> > >> > [EMAIL PROTECTED] >> > http://stawicki.jasliska.pl >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Re%3A-Remove-Entry-from-schedule-Tomahawk-tf4281655.html#a12206017 >> Sent from the MyFaces - Users mailing list archive at Nabble.com. >> >> > > > -- > Michał Stawicki > > [EMAIL PROTECTED] > http://stawicki.jasliska.pl > > -- View this message in context: http://www.nabble.com/Re%3A-Remove-Entry-from-schedule-Tomahawk-tf4281655.html#a12209467 Sent from the MyFaces - Users mailing list archive at Nabble.com.