Skip to content

Commit

Permalink
Filter in Projektliste View
Browse files Browse the repository at this point in the history
  • Loading branch information
Johann Maierhofer committed Jan 15, 2025
1 parent 04cf012 commit ab1c8fc
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 12 deletions.
82 changes: 70 additions & 12 deletions src/de/jost_net/JVerein/gui/control/ProjektControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,10 @@
import de.jost_net.JVerein.rmi.Projekt;
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.datasource.rmi.DBService;
import de.willuhn.jameica.gui.AbstractControl;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.Part;
import de.willuhn.jameica.gui.formatter.DateFormatter;
import de.willuhn.jameica.gui.input.DateInput;
import de.willuhn.jameica.gui.input.Input;
import de.willuhn.jameica.gui.input.TextInput;
Expand All @@ -38,11 +37,9 @@
import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;

public class ProjektControl extends AbstractControl
public class ProjektControl extends FilterControl
{

private de.willuhn.jameica.system.Settings settings;

private TablePart projektList;

private Input bezeichnung;
Expand Down Expand Up @@ -150,19 +147,80 @@ public void handleStore()

public Part getProjektList() throws RemoteException
{
DBService service = Einstellungen.getDBService();
DBIterator<Projekt> projekte = service.createList(Projekt.class);
projekte.setOrder("ORDER BY bezeichnung");

projektList = new TablePart(projekte, new ProjektAction());
if (projektList != null)
{
return projektList;
}
projektList = new TablePart(getProjekte(), new ProjektAction());
projektList.addColumn("Bezeichnung", "bezeichnung");
projektList.addColumn("Startdatum", "startdatum");
projektList.addColumn("Endedatum", "endedatum");
projektList.addColumn("Startdatum", "startdatum",
new DateFormatter(new JVDateFormatTTMMJJJJ()));
projektList.addColumn("Endedatum", "endedatum",
new DateFormatter(new JVDateFormatTTMMJJJJ()));
projektList.setContextMenu(new ProjektMenu());
projektList.setRememberColWidths(true);
projektList.setRememberOrder(true);
projektList.addFeature(new FeatureSummary());
return projektList;
}

public void TabRefresh()
{
if (projektList == null)
{
return;
}
projektList.removeAll();
try
{
DBIterator<Projekt> projekte = getProjekte();
while (projekte.hasNext())
{
projektList.addItem(projekte.next());
}
projektList.sort();
}
catch (RemoteException e1)
{
Logger.error("Fehler", e1);
}
}

private DBIterator<Projekt> getProjekte() throws RemoteException
{
DBIterator<Projekt> projekte = Einstellungen.getDBService()
.createList(Projekt.class);

if (isSuchtextAktiv() && getSuchtext().getValue() != null)
{
String tmpSuchtext = (String) getSuchtext().getValue();
if (tmpSuchtext.length() > 0)
{
projekte.addFilter("(lower(bezeichnung) like ?)",
new Object[] { "%" + tmpSuchtext.toLowerCase() + "%"});
}
}
if (isDatumvonAktiv() && getDatumvon().getValue() != null)
{
projekte.addFilter("startdatum >= ?",
new Object[] { (Date) getDatumvon().getValue() });
}
if (isDatumbisAktiv() && getDatumbis().getValue() != null)
{
projekte.addFilter("startdatum <= ?",
new Object[] { (Date) getDatumbis().getValue() });
}
if (isEingabedatumvonAktiv() && getEingabedatumvon().getValue() != null)
{
projekte.addFilter("endedatum >= ?",
new Object[] { (Date) getEingabedatumvon().getValue() });
}
if (isEingabedatumbisAktiv() && getEingabedatumbis().getValue() != null)
{
projekte.addFilter("endedatum <= ?",
new Object[] { (Date) getEingabedatumbis().getValue() });
}
projekte.setOrder("ORDER BY bezeichnung");
return projekte;
}
}
39 changes: 39 additions & 0 deletions src/de/jost_net/JVerein/gui/view/ProjektListView.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,13 @@
import de.jost_net.JVerein.gui.action.DokumentationAction;
import de.jost_net.JVerein.gui.action.ProjektAction;
import de.jost_net.JVerein.gui.control.ProjektControl;
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;
import de.willuhn.jameica.gui.util.ColumnLayout;
import de.willuhn.jameica.gui.util.LabelGroup;
import de.willuhn.jameica.gui.util.SimpleContainer;

public class ProjektListView extends AbstractView
{
Expand All @@ -33,6 +37,41 @@ public void bind() throws Exception

ProjektControl control = new ProjektControl(this);

LabelGroup group = new LabelGroup(getParent(), "Filter");
ColumnLayout cl = new ColumnLayout(group.getComposite(), 3);

SimpleContainer left = new SimpleContainer(cl.getComposite());
left.addLabelPair("Bezeichnung", control.getSuchtext());

SimpleContainer middle = new SimpleContainer(cl.getComposite());
middle.addLabelPair("Startdatum von", control.getDatumvon());
middle.addLabelPair("Startdatum bis", control.getDatumbis());

SimpleContainer right = new SimpleContainer(cl.getComposite());
right.addLabelPair("Endedatum von", control.getEingabedatumvon());
right.addLabelPair("Endedatum bis", control.getEingabedatumbis());

ButtonArea fbuttons = new ButtonArea();
ToolTipButton zurueck1 = control.getZurueckButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(zurueck1);
ToolTipButton vor1 = control.getVorButton(control.getDatumvon(),
control.getDatumbis());
fbuttons.addButton(vor1);
ToolTipButton zurueck2 = control.getZurueckButton(
control.getEingabedatumvon(), control.getEingabedatumbis());
fbuttons.addButton(zurueck2);
ToolTipButton vor2 = control.getVorButton(control.getEingabedatumvon(),
control.getEingabedatumbis());
fbuttons.addButton(vor2);
fbuttons.addButton(control.getResetButton());
fbuttons.addButton(control.getSuchenButton());
group.addButtonArea(fbuttons);
zurueck1.setToolTipText("Start Datumsbereich zurück");
vor1.setToolTipText("Start Datumsbereich vowärts");
zurueck2.setToolTipText("Ende Datumsbereich zurück");
vor2.setToolTipText("Ende Datumsbereich vowärts");

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

ButtonArea buttons = new ButtonArea();
Expand Down

0 comments on commit ab1c8fc

Please sign in to comment.