Skip to content
Snippets Groups Projects
Commit ae9c931b authored by buczekp's avatar buczekp
Browse files

[LMS-1353] fixed most problems with layout of many filter fields

SVN: 14569
parent 677280de
No related branches found
No related tags found
No related merge requests found
...@@ -252,6 +252,14 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod ...@@ -252,6 +252,14 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
contentPanel.setBottomComponent(bottomToolbars); contentPanel.setBottomComponent(bottomToolbars);
contentPanel.setHeaderVisible(showHeader); contentPanel.setHeaderVisible(showHeader);
contentPanel.setAutoWidth(true); contentPanel.setAutoWidth(true);
filterToolbar.addListener(Events.AfterLayout, new Listener<BaseEvent>()
{
public void handleEvent(BaseEvent be)
{
// fixes problem of hidden paging toolbar
contentPanel.syncSize();
}
});
columnListener = new ColumnListener<T, M>(grid); columnListener = new ColumnListener<T, M>(grid);
registerLinkClickListenerFor(Dict.CODE, new ICellListener<T>() registerLinkClickListenerFor(Dict.CODE, new ICellListener<T>()
{ {
......
...@@ -175,8 +175,9 @@ class ColumnSettingsChooser ...@@ -175,8 +175,9 @@ class ColumnSettingsChooser
add(new SeparatorToolItem()); add(new SeparatorToolItem());
add(new WidgetComponent(createLink(Selectable.VISIBLE, false))); add(new WidgetComponent(createLink(Selectable.VISIBLE, false)));
add(new SeparatorToolItem()); add(new SeparatorToolItem());
add(new WidgetComponent(createLink(Selectable.FILTER, true))); // WORKAROUND to fix problems with layout when all many filters are shown
add(new SeparatorToolItem()); // add(new WidgetComponent(createLink(Selectable.FILTER, true)));
// add(new SeparatorToolItem());
add(new WidgetComponent(createLink(Selectable.FILTER, false))); add(new WidgetComponent(createLink(Selectable.FILTER, false)));
add(new FillToolItem()); add(new FillToolItem());
Button up = new Button("Move Up"); Button up = new Button("Move Up");
......
...@@ -5,7 +5,6 @@ import java.util.HashSet; ...@@ -5,7 +5,6 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import com.extjs.gxt.ui.client.Style.Orientation;
import com.extjs.gxt.ui.client.data.ModelData; import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.event.ButtonEvent; import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent; import com.extjs.gxt.ui.client.event.ComponentEvent;
...@@ -14,10 +13,10 @@ import com.extjs.gxt.ui.client.event.SelectionChangedEvent; ...@@ -14,10 +13,10 @@ import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener; import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.Component; import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.button.ButtonGroup;
import com.extjs.gxt.ui.client.widget.form.Field; import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.TriggerField; import com.extjs.gxt.ui.client.widget.form.TriggerField;
import com.extjs.gxt.ui.client.widget.layout.FillLayout;
import com.extjs.gxt.ui.client.widget.toolbar.LabelToolItem; import com.extjs.gxt.ui.client.widget.toolbar.LabelToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
...@@ -58,7 +57,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb ...@@ -58,7 +57,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
// stores the state of column filters, even if custom filter is currently used // stores the state of column filters, even if custom filter is currently used
private final List<IColumnFilterWidget<T>> columnFilters; private final List<IColumnFilterWidget<T>> columnFilters;
private final LayoutContainer filterContainer; private final ContentPanel filterContainer;
private final FilterSelectionWidget filterSelectionWidget; private final FilterSelectionWidget filterSelectionWidget;
...@@ -79,8 +78,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb ...@@ -79,8 +78,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
add(new LabelToolItem(messageProvider.getMessage(Dict.FILTER) + ": ")); add(new LabelToolItem(messageProvider.getMessage(Dict.FILTER) + ": "));
filterSelectionWidget = filterSelectionWidget =
new FilterSelectionWidget(viewContext, gridId, displayTypeIDProvider); new FilterSelectionWidget(viewContext, gridId, displayTypeIDProvider);
filterContainer = new LayoutContainer(new FillLayout(Orientation.HORIZONTAL)); filterContainer = new ButtonGroup(6); // 6 filter fields fit into browser with 1024px width
filterContainer.setLayoutOnChange(true); // fixes jumping filter fields in firefox
add(filterSelectionWidget); add(filterSelectionWidget);
add(filterContainer); add(filterContainer);
applyTool = new TextToolItem(messageProvider.getMessage(Dict.APPLY_FILTER)); applyTool = new TextToolItem(messageProvider.getMessage(Dict.APPLY_FILTER));
...@@ -239,7 +237,8 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb ...@@ -239,7 +237,8 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
// copes well with cases when one filter widget changes into another. // copes well with cases when one filter widget changes into another.
private void updateFilterContainer(List<Widget> filterWidgets) private void updateFilterContainer(List<Widget> filterWidgets)
{ {
boolean changed = false;
filterContainer.disableEvents(true);
for (int i = 0; i < filterWidgets.size(); i++) for (int i = 0; i < filterWidgets.size(); i++)
{ {
Widget filterWidget = filterWidgets.get(i); Widget filterWidget = filterWidgets.get(i);
...@@ -250,15 +249,24 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb ...@@ -250,15 +249,24 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
{ {
filterContainer.remove(previousItem); filterContainer.remove(previousItem);
filterContainer.insert(filterWidget, i); filterContainer.insert(filterWidget, i);
changed = true;
} }
} else } else
{ {
filterContainer.add(filterWidget); filterContainer.add(filterWidget);
changed = true;
} }
} }
for (int i = filterWidgets.size(); i < filterContainer.getItemCount(); i++) for (int i = filterWidgets.size(); i < filterContainer.getItemCount(); i++)
{ {
filterContainer.remove(filterContainer.getItem(i)); filterContainer.remove(filterContainer.getItem(i));
changed = true;
}
filterContainer.enableEvents(true);
if (changed)
{
// contentPanel of AbstractBrowserGrid is listening on this layout and synchronizes size
layout();
} }
} }
...@@ -513,4 +521,5 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb ...@@ -513,4 +521,5 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
} }
return filteredColumnsIds; return filteredColumnsIds;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment