/**
   * Diese Methode löscht das übergebene Objekt aus der lokalen Datenbank.
   *
   * @param Termin Das ist der Termin der aus dem Datenbank entfernt werden soll.
   * @return boolean Falls das Objekt erfolgreich gelöscht wurde dann wird true zurückgeliefert,
   *     sonnst false.
   * @author Alpay Firato
   */
  public boolean deleteTermin(Termin Object) {
    if (Object == null) return false;

    try {
      GenericDAO gdo = new GenericDAO();
      List<GenericDataObject> loeschen =
          gdo.unsafeQuery(
              "SELECT * FROM " + this.tablename + " WHERE ID =" + Object.getId(), new Termin());
      lastDeletedObjects.add(loeschen.get(0));
      loeschen =
          gdo.unsafeQuery(
              "DELETE FROM " + this.tablename + " WHERE ID =" + Object.getId(), new Termin());
      return true;
    } catch (Exception e) {
      JOptionPane.showMessageDialog(
          null, "Error: " + e.toString(), "Error!", JOptionPane.ERROR_MESSAGE);
    }
    return true;
  }
  /**
   * Diese Methode löscht die markierten Objekte aus der lokalen Datenbank. Nach einem erfolgreichen
   * Löschvorgang wird fireDataChanged aufgerufen. Alle gelöschten Objekte wird als eine Liste
   * abgespeichert damit man später diese Daten wiederherstellen kann wenn erfordert.
   *
   * @param JTable Das ist die Tabelle bei der die Daten markiert worden sind.
   * @author Alpay Firato
   */
  public void deleteSelectedRow(JTable table) {
    Termin p = new Termin();
    boolean selected = false;
    boolean deleted = false;
    boolean first = true;
    int auswahl = 0;
    p = null;
    //	 Check each cell in the range
    if (this.onlinesuche == false) {
      for (int r = 0; r < this.getRowCount(); r++) {
        if (table.isCellSelected(r, 1)) {
          selected = true;
          p = (Termin) this.getObjects().get(r);
          if (p.getId() != null) {
            if (first) {
              auswahl =
                  JOptionPane.showConfirmDialog(
                      null,
                      "Sind sie sicher dass sie alle markierten Objekte löschen wollen?",
                      "Löschen?",
                      JOptionPane.YES_NO_CANCEL_OPTION,
                      JOptionPane.ERROR_MESSAGE);
            }
            if (auswahl == JOptionPane.YES_OPTION) {
              // weiter mit löschen
              deleted = this.deleteTermin(p);
              if (deleted) {
                if (first) {
                  JOptionPane.showMessageDialog(
                      null,
                      "Das Löschvorgang war erfolgreich.",
                      "Gelöscht!",
                      JOptionPane.INFORMATION_MESSAGE);
                }
              } else {
                JOptionPane.showMessageDialog(
                    null,
                    "Das Objekt konnte nicht gelöscht werden.",
                    "Löschen!",
                    JOptionPane.ERROR_MESSAGE);
              }
            }
          } else {
            JOptionPane.showMessageDialog(
                null,
                "Dieses Objekt kann nicht gelöscht werden.",
                "Null Object!",
                JOptionPane.ERROR_MESSAGE);
          }
          first = false;
        }
      }
    } else {
      JOptionPane.showMessageDialog(
          null,
          "Online Objekte können nicht gelöscht werden.",
          "Online Object!",
          JOptionPane.ERROR_MESSAGE);
    }

    if (selected == false) {
      JOptionPane.showMessageDialog(
          null,
          "Bitte selektieren Sie mindestens eine Reihe in der Tabelle",
          "Data wurde nicht ausgewählt!",
          JOptionPane.ERROR_MESSAGE);
    }
    if (deleted) {
      this.fireDataChanged();
    }
  }