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.

Reply via email to