### Eclipse Workspace Patch 1.0 #P jverein diff --git src/de/jost_net/JVerein/gui/action/SuchprofilLadenAction.java src/de/jost_net/JVerein/gui/action/SuchprofilLadenAction.java index 9e33267..772a25f 100644 --- src/de/jost_net/JVerein/gui/action/SuchprofilLadenAction.java +++ src/de/jost_net/JVerein/gui/action/SuchprofilLadenAction.java @@ -53,6 +53,7 @@ String key = (String) o; s.setAttribute(key, p.getProperty(key)); } + s.setAttribute("id", sp.getID()); } catch (Exception e) { diff --git src/de/jost_net/JVerein/gui/control/MitgliedSuchProfilControl.java src/de/jost_net/JVerein/gui/control/MitgliedSuchProfilControl.java index 11133ab..d864923 100644 --- src/de/jost_net/JVerein/gui/control/MitgliedSuchProfilControl.java +++ src/de/jost_net/JVerein/gui/control/MitgliedSuchProfilControl.java @@ -127,9 +127,14 @@ } catch (ObjectNotFoundException e) { - s.setAttribute("id", ""); - sp1 = (Suchprofil) Einstellungen.getDBService().createObject( - Suchprofil.class, null); + // Was nun? + } + if (sp1.getID() == null) + { + // Es gibt kein Suchprofil mit der angegebenen ID bzw. die + // ID ist null. Nicht weiter schlimm, wir verfahren einfach wie + // beim "Speichern unter" + saveas = true; } if (saveas) { @@ -141,32 +146,44 @@ { Object o = td.open(); getProfilname().setValue(o); - s.setAttribute("id", ""); sp1 = (Suchprofil) Einstellungen.getDBService().createObject( Suchprofil.class, null); - s.setAttribute("id", ""); } catch (OperationCanceledException e) { // Abbruch return; } + sp1.setClazz(MitgliedControl.class.getName()); + sp1.setBezeichnung((String) getProfilname().getValue()); + s.setAttribute("id", ""); + s.setAttribute("profilname", sp1.getBezeichnung()); + // Die ID ist nicht im Inhalt enthalten, da zu diesem Zeitpunkt + // noch nicht bekannt. Macht aber nichts, da wir die ID einfach + // direkt aus dem Primärschlüsselfeld des Datensatzes verwenden + storeSettings(s, sp1); + sp1.store(); + s.setAttribute("id", sp1.getID()); } - sp1.setBezeichnung((String) getProfilname().getValue()); - s.setAttribute("profilname", sp1.getBezeichnung()); - // Eigentlich sollte der Name der Klasse, die bei der Instanziierung - // übergeben wurde gespeichert werden. Der steht aber nicht zur Verfügung. - // Daher wird de.jost_net.JVerein.gui.control.MitgliedControl - // festverdrahtet übergeben. - sp1.setClazz("de.jost_net.JVerein.gui.control.MitgliedControl"); - storeSettings(s, sp1); - sp1.store(); - s.setAttribute("id", sp1.getID()); - sp1.store(); // Doppelte Speicherung erforderlich, damit die ID auch in - // den Inhalt der Properties kommt + else + { + // Überschreiben eines vorhandenen Suchprofils + s.setAttribute("id", sp1.getID()); + storeSettings(s, sp1); + sp1.store(); + } + Application.getMessagingFactory().sendMessage(new SuchprofilMessage(sp1)); - GUI.getStatusBar().setSuccessText("Profil gespeichert"); + if (saveas) + { + GUI.getStatusBar().setSuccessText("Profil gespeichert"); + } + else + { + GUI.getStatusBar().setSuccessText("Profil aktualisiert"); + } + } catch (Exception e) { diff --git src/de/jost_net/JVerein/gui/view/MitgliederSucheView.java src/de/jost_net/JVerein/gui/view/MitgliederSucheView.java index d78b0b6..a6fa643 100644 --- src/de/jost_net/JVerein/gui/view/MitgliederSucheView.java +++ src/de/jost_net/JVerein/gui/view/MitgliederSucheView.java @@ -31,6 +31,7 @@ import de.willuhn.jameica.gui.util.ColumnLayout; import de.willuhn.jameica.gui.util.LabelGroup; import de.willuhn.jameica.gui.util.SimpleContainer; +import de.willuhn.jameica.system.Settings; import de.willuhn.util.ApplicationException; public class MitgliederSucheView extends AbstractAdresseSucheView @@ -123,6 +124,10 @@ { try { + Settings s = control.getSettings(); + s.setAttribute("id", ""); + s.setAttribute("profilname", ""); + control.getMitgliedStatus().setValue("Angemeldet"); control.getSuchExterneMitgliedsnummer().setValue(""); control.resetEigenschaftenAuswahl();