Skip to content

Commit

Permalink
Vor Zurueck Buttons für Date Inputs in Listen Views (openjverein#514)
Browse files Browse the repository at this point in the history
* Vor Zurueck Buttons für Date Inputs in Listen Views

* Tooltip für Vor und Zurück Buttons
  • Loading branch information
JohannMaierhofer authored Dec 17, 2024
1 parent dea60cf commit fa5ec4b
Show file tree
Hide file tree
Showing 16 changed files with 274 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/de/jost_net/JVerein/Queries/SollbuchungQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ else if (count == anzahl)
{
sql.append(" WHERE ").append(where);
}
sql.append(" GROUP BY mitgliedskonto.id");
sql.append(" GROUP BY mitgliedskonto.id, mitgliedskonto.betrag");

if (DIFFERENZ.FEHLBETRAG == diff)
{
Expand Down
9 changes: 5 additions & 4 deletions src/de/jost_net/JVerein/gui/control/BuchungsControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
import de.jost_net.JVerein.gui.menu.SplitBuchungMenu;
import de.jost_net.JVerein.gui.parts.BuchungListTablePart;
import de.jost_net.JVerein.gui.parts.SplitbuchungListTablePart;
import de.jost_net.JVerein.gui.parts.ToolTipButton;
import de.jost_net.JVerein.gui.util.AfaUtil;
import de.jost_net.JVerein.io.BuchungAuswertungCSV;
import de.jost_net.JVerein.io.BuchungAuswertungPDF;
Expand Down Expand Up @@ -2198,9 +2199,9 @@ public String getSettingsPrefix()
return settingsprefix;
}

public Button getZurueckButton()
public ToolTipButton getZurueckButton()
{
return new Button("", new Action()
return new ToolTipButton("", new Action()
{
@Override
public void handleAction(Object context) throws ApplicationException
Expand Down Expand Up @@ -2243,9 +2244,9 @@ public void handleAction(Object context) throws ApplicationException
}, null, false, "go-previous.png");
}

public Button getVorButton()
public ToolTipButton getVorButton()
{
return new Button("", new Action()
return new ToolTipButton("", new Action()
{
@Override
public void handleAction(Object context) throws ApplicationException
Expand Down
118 changes: 117 additions & 1 deletion src/de/jost_net/JVerein/gui/control/FilterControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@

import java.rmi.RemoteException;
import java.text.ParseException;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
Expand All @@ -36,6 +39,7 @@
import de.jost_net.JVerein.gui.input.GeschlechtInput;
import de.jost_net.JVerein.gui.input.IntegerNullInput;
import de.jost_net.JVerein.gui.input.MailAuswertungInput;
import de.jost_net.JVerein.gui.parts.ToolTipButton;
import de.jost_net.JVerein.keys.SuchSpendenart;
import de.jost_net.JVerein.rmi.Abrechnungslauf;
import de.jost_net.JVerein.rmi.Adresstyp;
Expand Down Expand Up @@ -149,8 +153,15 @@ public class FilterControl extends AbstractControl

protected IntegerNullInput integerausw = null;

private Calendar calendar = Calendar.getInstance();

private enum RANGE
{
MONAT, TAG
}

protected SelectInput suchspendenart = null;

public enum Mitgliedstyp {
MITGLIED,
NICHTMITGLIED,
Expand Down Expand Up @@ -1609,4 +1620,109 @@ private void saveDate(Date tmp, String setting)
settings.setAttribute(settingsprefix + setting, "");
}
}

public ToolTipButton getZurueckButton(DateInput vonDatum, DateInput bisDatum)
{
return new ToolTipButton("", new Action()
{
@Override
public void handleAction(Object context) throws ApplicationException
{
Date von = (Date) vonDatum.getValue();
Date bis = (Date) bisDatum.getValue();
if (getRangeTyp(von, bis) == RANGE.TAG)
{
int delta = (int) ChronoUnit.DAYS.between(von.toInstant(), bis.toInstant());
delta++;
calendar.setTime(von);
calendar.add(Calendar.DAY_OF_MONTH, -delta);
vonDatum.setValue(calendar.getTime());
calendar.setTime(bis);
calendar.add(Calendar.DAY_OF_MONTH, -delta);
bisDatum.setValue(calendar.getTime());
}
else
{
LocalDate lvon = von.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate lbis = bis.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int delta = (int) ChronoUnit.MONTHS.between(lvon, lbis);
delta++;
calendar.setTime(von);
calendar.add(Calendar.MONTH, -delta);
vonDatum.setValue(calendar.getTime());
calendar.add(Calendar.MONTH, delta);
calendar.add(Calendar.DAY_OF_MONTH, -1);
bisDatum.setValue(calendar.getTime());
}
TabRefresh();
}
}, null, false, "go-previous.png");
}

public ToolTipButton getVorButton(DateInput vonDatum, DateInput bisDatum)
{
return new ToolTipButton("", new Action()
{
@Override
public void handleAction(Object context) throws ApplicationException
{
Date von = (Date) vonDatum.getValue();
Date bis = (Date) bisDatum.getValue();
if (getRangeTyp(von, bis) == RANGE.TAG)
{
int delta = (int) ChronoUnit.DAYS.between(von.toInstant(), bis.toInstant());
delta++;
calendar.setTime(von);
calendar.add(Calendar.DAY_OF_MONTH, delta);
vonDatum.setValue(calendar.getTime());
calendar.setTime(bis);
calendar.add(Calendar.DAY_OF_MONTH, delta);
bisDatum.setValue(calendar.getTime());
}
else
{
LocalDate lvon = von.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate lbis = bis.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int delta = (int) ChronoUnit.MONTHS.between(lvon, lbis);
delta++;
calendar.setTime(von);
calendar.add(Calendar.MONTH, delta);
vonDatum.setValue(calendar.getTime());
calendar.add(Calendar.MONTH, delta);
calendar.add(Calendar.DAY_OF_MONTH, -1);
bisDatum.setValue(calendar.getTime());
}
TabRefresh();
}
}, null, false, "go-next.png");
}

private RANGE getRangeTyp(Date von, Date bis) throws ApplicationException
{
checkDate(von, bis);
calendar.setTime(von);
if (calendar.get(Calendar.DAY_OF_MONTH) != 1)
return RANGE.TAG;
calendar.setTime(bis);
calendar.add(Calendar.DAY_OF_MONTH, 1);
if (calendar.get(Calendar.DAY_OF_MONTH) != 1)
return RANGE.TAG;
return RANGE.MONAT;
}

private void checkDate(Date von, Date bis) throws ApplicationException
{
if (von == null)
{
throw new ApplicationException("Bitte Von Datum eingeben!");
}
if (bis == null)
{
throw new ApplicationException("Bitte Bis Datum eingeben!");
}
if (von.after(bis))
{
throw new ApplicationException("Von Datum ist nach Bis Datum!");
}
}
}
24 changes: 24 additions & 0 deletions src/de/jost_net/JVerein/gui/parts/ToolTipButton.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package de.jost_net.JVerein.gui.parts;

import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.parts.Button;

public class ToolTipButton extends Button
{
/**
* @param title
* Beschriftung.
* @param action
* Action, die beim Klick ausgefuehrt werden soll.
*/
public ToolTipButton(String title, Action action, Object context,
boolean defaultButton, String icon)
{
super(title, action, context, defaultButton, icon);
}

public void setToolTipText(String text)
{
this.button.setToolTipText(text);
}
}
9 changes: 9 additions & 0 deletions src/de/jost_net/JVerein/gui/view/AbrechnungslaufListView.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import de.jost_net.JVerein.gui.action.AbrechnungSEPAAction;
import de.jost_net.JVerein.gui.action.DokumentationAction;
import de.jost_net.JVerein.gui.control.AbrechnungslaufControl;
import de.jost_net.JVerein.gui.parts.ToolTipButton;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.parts.ButtonArea;
Expand Down Expand Up @@ -46,9 +47,17 @@ public void bind() throws Exception
right.addInput(control.getDatumbis());

ButtonArea fbuttons = new ButtonArea();
ToolTipButton zurueck = control.getZurueckButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(zurueck);
ToolTipButton vor = control.getVorButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(vor);
fbuttons.addButton(control.getResetButton());
fbuttons.addButton(control.getSuchenButton());
group.addButtonArea(fbuttons);
zurueck.setToolTipText("Datumsbereich zurück");
vor.setToolTipText("Datumsbereich vowärts");

control.getAbrechnungslaeufeList().paint(this.getParent());

Expand Down
9 changes: 9 additions & 0 deletions src/de/jost_net/JVerein/gui/view/AnfangsbestandListView.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import de.jost_net.JVerein.gui.action.AnfangsbestandNeuAction;
import de.jost_net.JVerein.gui.action.DokumentationAction;
import de.jost_net.JVerein.gui.control.AnfangsbestandControl;
import de.jost_net.JVerein.gui.parts.ToolTipButton;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.parts.ButtonArea;
Expand Down Expand Up @@ -48,9 +49,17 @@ public void bind() throws Exception
right.addInput(control.getDatumbis());

ButtonArea fbuttons = new ButtonArea();
ToolTipButton zurueck = control.getZurueckButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(zurueck);
ToolTipButton vor = control.getVorButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(vor);
fbuttons.addButton(control.getResetButton());
fbuttons.addButton(control.getSuchenButton());
group.addButtonArea(fbuttons);
zurueck.setToolTipText("Datumsbereich zurück");
vor.setToolTipText("Datumsbereich vowärts");

control.getAnfangsbestandList().paint(this.getParent());

Expand Down
13 changes: 9 additions & 4 deletions src/de/jost_net/JVerein/gui/view/AnlagenbuchungenListeView.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import de.jost_net.JVerein.gui.action.DokumentationAction;
import de.jost_net.JVerein.gui.control.BuchungsControl;
import de.jost_net.JVerein.gui.control.BuchungsControl.Kontenart;
import de.jost_net.JVerein.gui.parts.ToolTipButton;
import de.jost_net.JVerein.gui.control.BuchungsHeaderControl;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.Action;
Expand Down Expand Up @@ -67,13 +68,15 @@ public void bind() throws Exception
left.addLabelPair("Buchungsart", control.getSuchBuchungsart());
left.addLabelPair("Projekt", control.getSuchProjekt());
left.addLabelPair("Betrag", control.getSuchBetrag());
right.addLabelPair("Von Datum", control.getVondatum());
right.addLabelPair("Bis Datum", control.getBisdatum());
right.addLabelPair("Datum von", control.getVondatum());
right.addLabelPair("Datum bis", control.getBisdatum());
right.addLabelPair("Enthaltener Text", control.getSuchtext());

ButtonArea buttons1 = new ButtonArea();
buttons1.addButton(control.getZurueckButton());
buttons1.addButton(control.getVorButton());
ToolTipButton zurueck = control.getZurueckButton();
buttons1.addButton(zurueck);
ToolTipButton vor = control.getVorButton();
buttons1.addButton(vor);
Button reset = new Button("Filter-Reset", new Action()
{
@Override
Expand All @@ -94,6 +97,8 @@ public void handleAction(Object context) throws ApplicationException
}, null, true, "search.png");
buttons1.addButton(suchen);
labelgroup1.addButtonArea(buttons1);
zurueck.setToolTipText("Datumsbereich zurück");
vor.setToolTipText("Datumsbereich vowärts");

// Zweiter Tab
final BuchungsHeaderControl headerControl = new BuchungsHeaderControl(
Expand Down
9 changes: 9 additions & 0 deletions src/de/jost_net/JVerein/gui/view/ArbeitseinsatzListeView.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import de.jost_net.JVerein.gui.action.ArbeitseinsatzUeberpruefungAction;
import de.jost_net.JVerein.gui.action.DokumentationAction;
import de.jost_net.JVerein.gui.control.ArbeitseinsatzControl;
import de.jost_net.JVerein.gui.parts.ToolTipButton;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.parts.ButtonArea;
Expand Down Expand Up @@ -49,9 +50,17 @@ public void bind() throws Exception
right.addInput(control.getDatumbis());

ButtonArea fbuttons = new ButtonArea();
ToolTipButton zurueck = control.getZurueckButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(zurueck);
ToolTipButton vor = control.getVorButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(vor);
fbuttons.addButton(control.getResetButton());
fbuttons.addButton(control.getSuchenButton());
group.addButtonArea(fbuttons);
zurueck.setToolTipText("Datumsbereich zurück");
vor.setToolTipText("Datumsbereich vowärts");

control.getArbeitseinsatzTable().paint(this.getParent());

Expand Down
13 changes: 9 additions & 4 deletions src/de/jost_net/JVerein/gui/view/BuchungslisteView.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import de.jost_net.JVerein.gui.action.DokumentationAction;
import de.jost_net.JVerein.gui.control.BuchungsControl;
import de.jost_net.JVerein.gui.control.BuchungsControl.Kontenart;
import de.jost_net.JVerein.gui.parts.ToolTipButton;
import de.jost_net.JVerein.gui.control.BuchungsHeaderControl;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.Action;
Expand Down Expand Up @@ -68,14 +69,16 @@ public void bind() throws Exception
left.addLabelPair("Projekt", control.getSuchProjekt());
left.addLabelPair("Betrag", control.getSuchBetrag());
left.addLabelPair("Mitglied zugeordnet?", control.getSuchMitgliedZugeordnet());
right.addLabelPair("Von Datum", control.getVondatum());
right.addLabelPair("Bis Datum", control.getBisdatum());
right.addLabelPair("Datum von", control.getVondatum());
right.addLabelPair("Datum bis", control.getBisdatum());
right.addLabelPair("Enthaltener Text", control.getSuchtext());
right.addLabelPair("Mitglied Name", control.getMitglied());

ButtonArea buttons1 = new ButtonArea();
buttons1.addButton(control.getZurueckButton());
buttons1.addButton(control.getVorButton());
ToolTipButton zurueck = control.getZurueckButton();
buttons1.addButton(zurueck);
ToolTipButton vor = control.getVorButton();
buttons1.addButton(vor);
Button reset = new Button("Filter-Reset", new Action()
{
@Override
Expand All @@ -96,6 +99,8 @@ public void handleAction(Object context) throws ApplicationException
}, null, true, "search.png");
buttons1.addButton(suchen);
labelgroup1.addButtonArea(buttons1);
zurueck.setToolTipText("Datumsbereich zurück");
vor.setToolTipText("Datumsbereich vowärts");

// Zweiter Tab
final BuchungsHeaderControl headerControl = new BuchungsHeaderControl(
Expand Down
Loading

0 comments on commit fa5ec4b

Please sign in to comment.