Skip to content

Commit e8e3e55

Browse files
committed
Minor changes on SortHelper and SideNavMini.
1 parent 9af9492 commit e8e3e55

File tree

2 files changed

+49
-46
lines changed

2 files changed

+49
-46
lines changed
Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
/*
2+
* #%L
3+
* GwtMaterial
4+
* %%
5+
* Copyright (C) 2015 - 2021 GwtMaterialDesign
6+
* %%
7+
* Licensed under the Apache License, Version 2.0 (the "License");
8+
* you may not use this file except in compliance with the License.
9+
* You may obtain a copy of the License at
10+
*
11+
* http://www.apache.org/licenses/LICENSE-2.0
12+
*
13+
* Unless required by applicable law or agreed to in writing, software
14+
* distributed under the License is distributed on an "AS IS" BASIS,
15+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
* See the License for the specific language governing permissions and
17+
* limitations under the License.
18+
* #L%
19+
*/
120
package gwt.material.design.client.base.helper;
221

322
import static gwt.material.design.jquery.client.api.JQuery.$;
@@ -12,13 +31,15 @@ public class UiSortHelper {
1231
* @param dataAttribute - The data attribute that indicate the order of each children (i.e order -> data-attribute='order')
1332
*/
1433
public static void sort(String containerSelector, String childSelector, String dataAttribute) {
15-
$(containerSelector + " " + childSelector).sort((elem1, elem2) -> {
16-
Object elem1Order = $(elem1).data(dataAttribute);
17-
Object elem2Order = $(elem2).data(dataAttribute);
18-
if (elem1Order != null && elem2Order != null) {
19-
return Integer.parseInt(elem2Order.toString()) < Integer.parseInt(elem1Order.toString()) ? 1 : -1;
20-
}
21-
return -1;
22-
}).appendTo(containerSelector);
34+
if (containerSelector != null && !containerSelector.isEmpty() && childSelector != null && !childSelector.isEmpty() && dataAttribute != null && !dataAttribute.isEmpty()) {
35+
$(containerSelector + " " + childSelector + "[data-order]").sort((elem1, elem2) -> {
36+
Object elem1Order = $(elem1).data(dataAttribute);
37+
Object elem2Order = $(elem2).data(dataAttribute);
38+
if (elem1Order != null && elem2Order != null) {
39+
return Integer.parseInt(elem2Order.toString()) < Integer.parseInt(elem1Order.toString()) ? 1 : -1;
40+
}
41+
return -1;
42+
}).appendTo(containerSelector);
43+
}
2344
}
2445
}

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSideNavMini.java

Lines changed: 20 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,9 @@
1919
*/
2020
package gwt.material.design.client.ui;
2121

22-
import com.google.gwt.user.client.ui.Widget;
2322
import gwt.material.design.client.base.AbstractSideNav;
24-
import gwt.material.design.client.base.MaterialWidget;
2523
import gwt.material.design.client.constants.SideNavType;
2624

27-
import static gwt.material.design.client.js.JsMaterialElement.$;
28-
2925
//@formatter:off
3026

3127
/**
@@ -54,44 +50,30 @@
5450
public class MaterialSideNavMini extends AbstractSideNav {
5551

5652
private boolean overlay;
57-
private boolean expandable;
58-
private boolean expandOnClick;
53+
private boolean expandOnClick = true;
54+
private boolean collapseOnClick = true;
5955

6056
public MaterialSideNavMini() {
61-
super(SideNavType.MINI);
57+
super(SideNavType.MINI_WITH_EXPAND);
6258
setShowOnAttach(false);
6359
}
6460

6561
@Override
6662
protected void setup() {
6763
applyBodyScroll();
68-
if (isExpandable()) {
69-
setType(SideNavType.MINI_WITH_EXPAND);
70-
applyTransition(getElement());
71-
int originalWidth = getWidth();
72-
int miniWidth = 64;
73-
pushElement(getMain(), miniWidth);
74-
pushElementMargin(getFooter(), miniWidth);
75-
setWidth(miniWidth);
76-
77-
registerHandler(addOpeningHandler(event -> expand(originalWidth)));
78-
registerHandler(addClosingHandler(event -> collapse(miniWidth)));
79-
80-
// Add Opening when sidenav link is clicked by default
81-
for (Widget w : getChildren()) {
82-
if (w instanceof MaterialWidget && isExpandOnClick()) {
83-
$(w.getElement()).off("click").on("click", (e, param1) -> {
84-
if (!getElement().hasClassName("expanded")) {
85-
open();
86-
}
87-
return true;
88-
});
89-
}
90-
}
91-
} else {
92-
setType(SideNavType.MINI);
93-
setWidth(64);
94-
}
64+
applyTransition(getElement());
65+
int originalWidth = getWidth();
66+
int miniWidth = 64;
67+
pushElement(getMain(), miniWidth);
68+
pushElementMargin(getFooter(), miniWidth);
69+
setWidth(miniWidth);
70+
71+
registerHandler(addOpeningHandler(event -> {
72+
if (expandOnClick) expand(originalWidth);
73+
}));
74+
registerHandler(addClosingHandler(event -> {
75+
if (collapseOnClick) collapse(miniWidth);
76+
}));
9577
}
9678

9779
protected void expand(int width) {
@@ -112,12 +94,12 @@ protected void collapse(int width) {
11294
}
11395
}
11496

115-
public void setExpandable(boolean expandable) {
116-
this.expandable = expandable;
97+
public boolean isCollapseOnClick() {
98+
return collapseOnClick;
11799
}
118100

119-
public boolean isExpandable() {
120-
return expandable;
101+
public void setCollapseOnClick(boolean collapseOnClick) {
102+
this.collapseOnClick = collapseOnClick;
121103
}
122104

123105
public boolean isExpandOnClick() {

0 commit comments

Comments
 (0)