Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter in Projektliste View #573

Merged
merged 1 commit into from
Jan 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading