Package de.willuhn.jameica.reminder

Examples of de.willuhn.jameica.reminder.ReminderStorageProvider


  {
    super(action);
    setMulti(true);
   
    BeanService service = Application.getBootLoader().getBootable(BeanService.class);
    final ReminderStorageProvider provider = service.get(ReminderStorageProviderHibiscus.class);

    setFormatter(new TableFormatter() {
      public void format(TableItem item) {
        SepaSammelTransfer l = (SepaSammelTransfer) item.getData();
        if (l == null)
          return;

        try
        {
          Date termin = l.getTermin();
          boolean faellig = (termin.before(new Date()) && !l.ausgefuehrt());
          item.setFont(faellig ? Font.BOLD.getSWTFont() : Font.DEFAULT.getSWTFont());
          if (l.ausgefuehrt())
            item.setForeground(Color.COMMENT.getSWTColor());

          // Checken, ob der Auftrag einen Reminder hat oder ob es ein geclonter Auftrag ist
          HibiscusDBObject o = (HibiscusDBObject) l;
          String uuid = MetaKey.REMINDER_UUID.get(o);
          if (uuid != null)
          {
            try
            {
              Reminder r = provider.get(uuid);
              item.setImage(4,SWTUtil.getImage("stock_form-time-field.png"));
              item.setText(4,i18n.tr("ab {0}\n{1}",HBCI.DATEFORMAT.format(termin),r.getReminderInterval().toString()));
            }
            catch (Exception e)
            {
View Full Code Here


  {
    super(action);
    setMulti(true);
   
    BeanService service = Application.getBootLoader().getBootable(BeanService.class);
    final ReminderStorageProvider provider = service.get(ReminderStorageProviderHibiscus.class);

    setFormatter(new TableFormatter() {
      public void format(TableItem item) {
        SammelTransfer l = (SammelTransfer) item.getData();
        if (l == null)
          return;

        try
        {
          Date termin = l.getTermin();
          boolean faellig = (termin.before(new Date()) && !l.ausgefuehrt());
          item.setFont(faellig ? Font.BOLD.getSWTFont() : Font.DEFAULT.getSWTFont());
          if (l.hasWarnings())
            item.setForeground(Color.ERROR.getSWTColor());
          else if (l.ausgefuehrt())
            item.setForeground(Color.COMMENT.getSWTColor());

          // Checken, ob der Auftrag einen Reminder hat oder ob es ein geclonter Auftrag ist
          HibiscusDBObject o = (HibiscusDBObject) l;
          String uuid = MetaKey.REMINDER_UUID.get(o);
          if (uuid != null)
          {
            try
            {
              Reminder r = provider.get(uuid);
              item.setImage(4,SWTUtil.getImage("stock_form-time-field.png"));
              item.setText(4,i18n.tr("ab {0}\n{1}",HBCI.DATEFORMAT.format(termin),r.getReminderInterval().toString()));
            }
            catch (Exception e)
            {
View Full Code Here

  public AbstractTransferList(Action action)
  {
    super(action);
   
    BeanService service = Application.getBootLoader().getBootable(BeanService.class);
    final ReminderStorageProvider provider = service.get(ReminderStorageProviderHibiscus.class);

    setFormatter(new TableFormatter() {
      public void format(TableItem item) {
        Terminable l = (Terminable) item.getData();
        if (l == null)
          return;

        try
        {
          Date termin = l.getTermin();
          boolean faellig = (termin.before(new Date()) && !l.ausgefuehrt());
          item.setFont(faellig ? Font.BOLD.getSWTFont() : Font.DEFAULT.getSWTFont());
          if (l.ausgefuehrt())
            item.setForeground(Color.COMMENT.getSWTColor());

          // Checken, ob der Auftrag einen Reminder hat oder ob es ein geclonter Auftrag ist
          HibiscusDBObject o = (HibiscusDBObject) l;
          String uuid = MetaKey.REMINDER_UUID.get(o);
          if (uuid != null)
          {
            try
            {
              Reminder r = provider.get(uuid);
              item.setImage(5,SWTUtil.getImage("stock_form-time-field.png"));
              Date end = r.getEnd();
              if (end != null)
                item.setText(5,i18n.tr("{0} - {1}\n{2}",HBCI.DATEFORMAT.format(termin),HBCI.DATEFORMAT.format(end),r.getReminderInterval().toString()));
              else
View Full Code Here

      try
      {
        // Wir holen den Termin direkt aus unserem Provider. Denn wir
        // speichern ja auch nur dort.
        BeanService service = Application.getBootLoader().getBootable(BeanService.class);
        ReminderStorageProvider provider = service.get(ReminderStorageProviderHibiscus.class);
        Reminder reminder = provider.get(uuid);
        if (reminder != null)
        {
          ri = reminder.getReminderInterval();
          end = reminder.getEnd();
        }
View Full Code Here

    try
    {
      order.transactionBegin();

      BeanService service = Application.getBootLoader().getBootable(BeanService.class);
      ReminderStorageProvider provider = service.get(ReminderStorageProviderHibiscus.class);

      MetaKey UUID = MetaKey.REMINDER_UUID;
     
      // Reminder laden
      String uuid       = UUID.get(order);
      Reminder reminder = (uuid != null ? provider.get(uuid) : null);

      // a) ohne Intervall
      if (interval == null)
      {
        // wenn wir schon einen Reminder haben, dann loeschen wir ihn
        if (reminder != null)
        {
          provider.delete(uuid);
          UUID.set(order,null); // Referenz loeschen
        }
      }
      else // b) mit Intervall
      {
        // Neuen Reminder anlegen?
        if (reminder == null)
          reminder = new Reminder();

        // Wichtig: Das Start-Datum des Reminders ist nicht direkt der
        // Termin sondern {Termin + ersters Intervall}. Die erste
        // Ausfuehrung ist ja der Auftrag "bu" selbst. Erst die Folge-Termine
        // kommen ja via Reminder.
        // Das erste Datum ignorieren wir. Wir wollen ja erst das naechste haben.
        // Selbst bei jaehrlicher Ausfuehrung sollte die Liste jetzt genau
        // 2 Daten enthalten (erster und letzter des Jahres).
        List<Date> dates = interval.getDates(((Terminable)order).getTermin(),null,null);
        if (dates.size() < 2)
          throw new ApplicationException(i18n.tr("Kein Datum f�r die n�chste Wiederholung ermittelbar"));
        reminder.setDate(dates.get(1));
        reminder.setEnd(end);
        reminder.setData(Reminder.KEY_EXPIRED,null); // expired date resetten. Wird vom Service bei Bedarf neu gesetzt
        reminder.setQueue("hibiscus.reminder.order");
        reminder.setData("order.class",order.getClass().getName());
        reminder.setData("order.id",order.getID());
        reminder.setReminderInterval(interval);
       
        if (uuid != null) // Update
        {
          provider.update(uuid,reminder);
        }
        else // Add
        {
          uuid = provider.add(reminder);
          // UUID des Reminders speichern
          UUID.set(order,uuid);
        }
      }
     
View Full Code Here

    }
   
    try
    {
      BeanService bs = Application.getBootLoader().getBootable(BeanService.class);
      ReminderStorageProvider provider = bs.get(ReminderStorageProviderHibiscus.class);

      Date start = DateUtil.startOfDay(from);
      Date end   = DateUtil.endOfDay(to);
      Date now   = new Date();
     
      // wir cachen das Resultset von der Datenbank - dann muessen wir die
      // Daten nicht dauernd neu laden, wenn der User durch die Monate blaettert
      // Da wir einen Request-Scope haben, bleibt der Resultset auch nur solange
      // erhalten, wie sich der User auf der gleichen View befindet.
      if (list == null)
      {
        HBCIDBService service = Settings.getDBService();
        this.list = service.createList(type);
        if (k != null)
          list.addFilter("konto_id = " + k.getID());
        this.list.setOrder("ORDER BY " + service.getSQLTimestamp("termin"));
      }
      list.begin(); // rest pointer
     
      while (this.list.hasNext())
      {
        T u = (T) this.list.next();
        String uuid = MetaKey.REMINDER_UUID.get(u);
        Date termin = u.getTermin();
       
        // a) Auftrag existiert. Wenn er ins Zeitfenster passt, wird er verwendet
        if (!termin.before(start) && !termin.after(end))
          result.add(new Schedule(termin,u,false));

        // b) jetzt noch checken, ob er einen Reminder hat.
       
        if (termin.after(end))
          continue; // hier brauchen wir gar nicht erst suchen - wir sind ausserhalb des Zeitfensters
       
        if (uuid != null)
        {
          Reminder reminder = provider.get(uuid);
          ReminderInterval ri = reminder != null ? reminder.getReminderInterval() : null;
          if (ri != null)
          {
            Date last = reminder.getEnd();
            List<Date> dates = ri.getDates(termin,new Date(termin.getTime()+1),end); // nicht ab start sondern ab (exclusive) erster Ausfuehrung
View Full Code Here

TOP

Related Classes of de.willuhn.jameica.reminder.ReminderStorageProvider

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.