From c726ded391f551cb6024b46af3de5931b0f0c531 Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Tue, 20 Mar 2018 06:45:39 +0000
Subject: [PATCH] Beschriftungen der Abspieler- und Sender-Dialoge entfernt bzw. als Inline-Beschriftung gestaltet

---
 src/java/de/uhilger/radiozentrale/api/AbspielerApi.java |   72 ++++++++++++++++++++++++++++++++----
 1 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java b/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
index 64d52e0..e5490ee 100644
--- a/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
+++ b/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
@@ -20,9 +20,13 @@
 
 import de.uhilger.baselink.PersistenceManager;
 import de.uhilger.radiozentrale.daten.Abspieler;
+import de.uhilger.radiozentrale.daten.Sender;
 import de.uhilger.radiozentrale.web.Initialiser;
+import java.net.HttpURLConnection;
+import java.net.URL;
 import java.sql.Connection;
 import java.util.List;
+import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
@@ -33,14 +37,16 @@
   private static final Logger logger = Logger.getLogger(AbspielerApi.class.getName());
 
   public static final String KEY_ABSPIELER_ID = "abs_id";
-  public static final String SQL_GET_ABSPIELER = "getAbspieler";
+  public static final String ABSPIELER_SELECTED = "selected";
+  public static final String SQL_GET_ABSPIELER_LIST = "getAbspielerList";
+  public static final String SQL_UNSEL_ABSPIELER = "unselectAbspieler";
 
   
   /**
-   * TODO selected bei anderen Abspielern entfernen, wenn der neue Abspieler 
-   * selected sein soll
-   * @param abspieler
-   * @return 
+   * Einen neuen Abspieler in der Datenbank speichern
+   * 
+   * @param abspieler der neue Abspieler
+   * return der Abspieler nach dem Speichern (mit ID)
    */
   public Abspieler neuerAbspieler(Abspieler abspieler) {
     Abspieler neuerAbspieler = null;
@@ -49,8 +55,11 @@
     db.startTransaction(c);
     int nextKey = getNextId(db, KEY_ABSPIELER_ID);
     if(nextKey > -1) {
+      if(abspieler.getZustand().equals(ABSPIELER_SELECTED)) {
+        db.execute(getSql(SQL_UNSEL_ABSPIELER), "", ABSPIELER_SELECTED);
+      }
       abspieler.setId(nextKey);
-      Object o = getDb().insert(abspieler, getMapper(Initialiser.MP_ABSPIELER));
+      Object o = db.insert(abspieler, getMapper(Initialiser.MP_ABSPIELER));
       if(o instanceof Abspieler) {
         neuerAbspieler = (Abspieler) o;
         db.commit(c);
@@ -66,8 +75,55 @@
     return neuerAbspieler;   
   }
   
-  public List abspielerliste() {
-    return getDb().select(getSql(SQL_GET_ABSPIELER), getMapper(Initialiser.MP_ABSPIELER));
+  public Abspieler abspielerAendern(Abspieler abspieler) {
+    Abspieler geaendert = null;
+    PersistenceManager db = getDb();
+    Connection c = db.getConnection();
+    db.startTransaction(c);
+    if(abspieler.getZustand().equals(ABSPIELER_SELECTED)) {
+      db.execute(getSql(SQL_UNSEL_ABSPIELER), "", ABSPIELER_SELECTED);
+    }
+    Object o = db.update(abspieler, getMapper(Initialiser.MP_ABSPIELER));
+    if(o instanceof Abspieler) {
+      geaendert = (Abspieler) o;
+      db.commit(c);
+      logger.fine("Abspieler geaendert: " + abspieler.getId() + " " + abspieler.getName());
+    } else {
+      db.rollback(c);
+    }
+    return geaendert;
   }
   
+  public Abspieler abspielerLoeschen(Abspieler abspieler) {
+    Abspieler geloescht = null;
+    Object o = getDb().delete(abspieler, getMapper(Initialiser.MP_ABSPIELER));
+    if(o instanceof Abspieler) {
+      geloescht = (Abspieler) o;
+      logger.fine("Abspieler geloescht: " + abspieler.getId() + " " + abspieler.getName());
+    }
+    return geloescht;
+  }
+  
+  public List abspielerliste() {
+    return getDb().select(getSql(SQL_GET_ABSPIELER_LIST), getMapper(Initialiser.MP_ABSPIELER));
+  }
+  
+  public String abspielen(int abspielerId, int senderId) {
+    Abspieler a = getAbspieler(abspielerId);
+    Sender s = getSender(senderId);
+    StringBuffer url = new StringBuffer();
+    url.append(a.getUrl());
+    url.append("/sys/rpc?c=de.uhilger.pirc.App&m=abspielenMitParametern&p=");
+    url.append(s.getUrl());
+    url.append("&p=-o%20local&p=");
+    return abspielerKommandoSenden(url.toString());
+  }
+  
+  public String abspielenStoppen(int abspielerId) {
+    Abspieler a = getAbspieler(abspielerId);
+    StringBuffer url = new StringBuffer();
+    url.append(a.getUrl());
+    url.append("/sys/rpc?c=de.uhilger.pirc.App&m=kommando&p=q");
+    return abspielerKommandoSenden(url.toString());    
+  }
 }

--
Gitblit v1.9.3