Skip to content

Commit

Permalink
Feature Eigenschaften Bearbeiten Teil 2 (#399)
Browse files Browse the repository at this point in the history
* Erweiterung Eigenschaftenfilter

* Solve comments

* fix Long compare

* Update MitgliedQuery.java

* Zwischenstand

* Weitere Icons

* Kommentare und Renaming

* Delete old files

* Umbennenung

* Include Comments

* TextInput bei Zusatzfeldern auch disable

* Tooltips für Eigenschaftenauswahl und Zusatzfelderabfrage

* Großschrift
  • Loading branch information
JohannMaierhofer authored Nov 2, 2024
1 parent 04c9e23 commit becc6cd
Show file tree
Hide file tree
Showing 38 changed files with 507 additions and 888 deletions.
6 changes: 3 additions & 3 deletions src/de/jost_net/JVerein/Queries/MitgliedQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import de.jost_net.JVerein.keys.Datentyp;
import de.jost_net.JVerein.rmi.Beitragsgruppe;
import de.jost_net.JVerein.rmi.Mitglied;
import de.jost_net.JVerein.server.EigenschaftenNode2;
import de.jost_net.JVerein.server.EigenschaftenNode;
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
import de.willuhn.datasource.pseudo.PseudoIterator;
import de.willuhn.datasource.rmi.DBIterator;
Expand Down Expand Up @@ -462,7 +462,7 @@ public Object extract(ResultSet rs) throws RemoteException, SQLException
if (control.getEigenschaftenVerknuepfung().equals("und"))
{
ok = true;
if(suchauswahl.get(suchId).equals(EigenschaftenNode2.PLUS))
if(suchauswahl.get(suchId).equals(EigenschaftenNode.PLUS))
{
if (!mitgliedeigenschaftenIds.contains(suchId))
{
Expand All @@ -481,7 +481,7 @@ public Object extract(ResultSet rs) throws RemoteException, SQLException
}
else // Oder
{
if(suchauswahl.get(suchId).equals(EigenschaftenNode2.PLUS))
if(suchauswahl.get(suchId).equals(EigenschaftenNode.PLUS))
{
if (mitgliedeigenschaftenIds.contains(suchId))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@
package de.jost_net.JVerein.gui.action;

import java.rmi.RemoteException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.gui.control.MitgliedControl;
Expand All @@ -26,8 +30,11 @@
import de.jost_net.JVerein.rmi.Eigenschaften;
import de.jost_net.JVerein.rmi.Mitglied;
import de.jost_net.JVerein.server.EigenschaftenNode;
import de.willuhn.datasource.rmi.DBService;
import de.willuhn.datasource.rmi.ResultSetExtractor;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.system.OperationCanceledException;
import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;

Expand All @@ -45,59 +52,114 @@ public void handleAction(Object context) throws ApplicationException
{
throw new ApplicationException("Kein Mitglied ausgewählt");
}
Mitglied[] m = null;
Mitglied[] mitglieder = null;
if (context instanceof Mitglied)
{
m = new Mitglied[] { (Mitglied) context };
mitglieder = new Mitglied[] { (Mitglied) context };
}
else if (context instanceof Mitglied[])
{
m = (Mitglied[]) context;
mitglieder = (Mitglied[]) context;
}
int anzErfolgreich = 0;
int anzBereitsVorhanden = 0;
int anzGeloescht = 0;
try
{
EigenschaftenAuswahlDialog ead = new EigenschaftenAuswahlDialog("", true,
false, new MitgliedControl(null));
false, new MitgliedControl(null), false, mitglieder);
EigenschaftenAuswahlParameter param = ead.open();
for (EigenschaftenNode en : param.getEigenschaften())
if (param == null || param.getEigenschaftenNodes() == null)
{
for (Mitglied mit : m)
return;
}
Map<Long, Long[]> eigenschaftenMap = getEigenschaften();
ArrayList<EigenschaftenNode> eigenschaftenNodes = param.getEigenschaftenNodes();
for (EigenschaftenNode eigenschaftenNode : eigenschaftenNodes)
{
if (eigenschaftenNode.getPreset().equals(EigenschaftenNode.PLUS))
{
Eigenschaften eig = (Eigenschaften) Einstellungen.getDBService()
.createObject(Eigenschaften.class, null);
eig.setEigenschaft(en.getEigenschaft().getID());
eig.setMitglied(mit.getID());
try
for (Mitglied mitglied : mitglieder)
{
eig.store();
anzErfolgreich++;
}
catch (RemoteException e)
{
if (e.getCause() instanceof SQLException)
Eigenschaften eig = (Eigenschaften) Einstellungen.getDBService()
.createObject(Eigenschaften.class, null);
eig.setEigenschaft(eigenschaftenNode.getEigenschaft().getID());
eig.setMitglied(mitglied.getID());
try
{
eig.store();
anzErfolgreich++;
}
catch (RemoteException e)
{
anzBereitsVorhanden++;
if (e.getCause() instanceof SQLException)
{
anzBereitsVorhanden++;
}
else
{
throw new ApplicationException(e);
}
}
else
}
}
else if (eigenschaftenNode.getPreset().equals(EigenschaftenNode.MINUS))
{
for (Mitglied mitglied : mitglieder)
{
for (Long key : eigenschaftenMap.keySet())
{
throw new ApplicationException(e);
Long[] entry = eigenschaftenMap.get(key);
if (entry[0].equals(Long.valueOf(mitglied.getID())) &&
entry[1].equals(Long.valueOf(eigenschaftenNode.getEigenschaft().getID())))
{
Eigenschaften eig = (Eigenschaften) Einstellungen.getDBService()
.createObject(Eigenschaften.class, key.toString());
eig.delete();
anzGeloescht++;
}
}
}
}
}
}
catch (OperationCanceledException oce)
{
throw oce;
}
catch (Exception e)
{
Logger.error(

"Fehler beim Anlegen neuer Eigenschaften", e);
"Fehler beim Bearbeiten von Eigenschaften", e);
return;
}
GUI.getStatusBar().setSuccessText(
String.format(
"%d Eigenschaft(en) angelegt. %d waren bereits vorhanden.",
anzErfolgreich, anzBereitsVorhanden));
"%d Eigenschaft(en) angelegt, %d waren bereits vorhanden, %d wurden gelöscht.",
anzErfolgreich, anzBereitsVorhanden, anzGeloescht));
}

@SuppressWarnings("unchecked")
private Map<Long, Long[]> getEigenschaften() throws RemoteException
{
// Eigenschaften lesen
final DBService service = Einstellungen.getDBService();
String sql = "SELECT eigenschaften.* from eigenschaften ";
Map<Long, Long[]> mitgliedeigenschaften = (Map<Long, Long[]>) service.execute(sql,
new Object[] { }, new ResultSetExtractor()
{
@Override
public Object extract(ResultSet rs) throws RemoteException, SQLException
{
Map<Long, Long[]> list = new HashMap<>();
while (rs.next())
{
// (Eigenschaften.Id, [Mitglied.Id, Eigenschaft.Id])
list.put(rs.getLong(1), new Long[] {rs.getLong(2), rs.getLong(3)});
}
return list;
}
});
return mitgliedeigenschaften;
}
}
Loading

0 comments on commit becc6cd

Please sign in to comment.