Skip to content

Commit 9b1f213

Browse files
committed
Material Window Dialog
Material Icons Sidebar supports Collapsible Submenus and multi declaration on any interface Minor Issues
1 parent 237c607 commit 9b1f213

File tree

13 files changed

+534
-76
lines changed

13 files changed

+534
-76
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
<br/>
55
A Google Material Design wrapper for GWT <br>
66
<a href="www.gwt-material.appspot.com">http://www.gwt-material.appspot.com</a>
7-
<h3>Version 1.3.2</h3>
7+
<h3>Upcoming Version 1.3.2</h3>
88
<ul>
99
<li><a href="http://gwt-material.appspot.com/#theme" >GWT Material Themes</a></li>
1010
<li><a href="http://gwt-material.appspot.com/#shadow">Shadow DOM on Material Panels, Columns, Rows</a></li>
1111
<li><a href="http://gwt-material.appspot.com/#helper">Helpers (Alignment, Hiding Content, Formatting esp. Text Truncation)</a></li>
1212
<li><a href="http://gwt-material.appspot.com/#table">Tables (Bordered Table, Striped Table, Hoverable Table, Centered Table, Responsive Table)</a></li>
1313
<li>Updated the Getting Started Page of showcase site to add Starter Template Sample (UI Binder Code) <a href="http://gwt-material-starter.appspot.com">Demo(Google Inbox App)</a></li>
14-
<li><a href="http://gwt-material-starter.appspot.com">No Result Interface</a></li>
14+
<li><a href="http://gwt-material-starter.appspot.com/#noResult">Material No Result</a></li>
15+
<li><a href="http://gwt-material-starter.appspot.com/#dialogs">Material Window Dialog</a></li>
16+
<li><a href="http://gwt-material-starter.appspot.com/#icons">Material Icons</a></li>
17+
<li>Sidebar supports Collapsible Submenus and multi declaration on any interface</li>
1518
</ul>
1619

1720
<img src="http://gwt-material.appspot.com/bin/starter.gif" width="200px"/>
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package gwt.material.design.client.custom;
2+
3+
import gwt.material.design.client.ui.MaterialLabel;
4+
import gwt.material.design.client.ui.MaterialLink;
5+
import gwt.material.design.client.ui.MaterialModal;
6+
import gwt.material.design.client.ui.MaterialPanel;
7+
8+
import com.google.gwt.core.client.GWT;
9+
import com.google.gwt.event.dom.client.ClickEvent;
10+
import com.google.gwt.uibinder.client.UiBinder;
11+
import com.google.gwt.uibinder.client.UiField;
12+
import com.google.gwt.uibinder.client.UiHandler;
13+
import com.google.gwt.user.client.ui.Composite;
14+
import com.google.gwt.user.client.ui.HTMLPanel;
15+
import com.google.gwt.user.client.ui.Widget;
16+
17+
public class MaterialWindowHeader extends Composite {
18+
19+
private static MaterialWindowHeaderUiBinder uiBinder = GWT.create(MaterialWindowHeaderUiBinder.class);
20+
21+
interface MaterialWindowHeaderUiBinder extends UiBinder<Widget, MaterialWindowHeader> {
22+
}
23+
24+
private HTMLPanel windowPanel;
25+
@UiField MaterialLabel lblTitle;
26+
@UiField MaterialPanel headerPanel;
27+
@UiField MaterialLink btnRestore, btnMaximize, btnClose;
28+
29+
public MaterialWindowHeader(HTMLPanel windowPanel, String title, String headerColor) {
30+
initWidget(uiBinder.createAndBindUi(this));
31+
this.windowPanel = windowPanel;
32+
lblTitle.setText(title);
33+
headerPanel.addStyleName(headerColor);
34+
btnRestore.setVisible(false);
35+
}
36+
37+
@UiHandler("btnMaximize")
38+
public void onMaximize(ClickEvent e){
39+
windowPanel.addStyleName("material-window-maximize");
40+
btnMaximize.setVisible(false);
41+
btnRestore.setVisible(true);
42+
}
43+
44+
@UiHandler("btnRestore")
45+
public void onRestore(ClickEvent e){
46+
windowPanel.removeStyleName("material-window-maximize");
47+
btnMaximize.setVisible(true);
48+
btnRestore.setVisible(false);
49+
}
50+
51+
@UiHandler("btnClose")
52+
public void onClose(ClickEvent e){
53+
MaterialModal.closeModal();
54+
}
55+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
2+
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
3+
xmlns:m="urn:import:gwt.material.design.client.ui"
4+
xmlns:g="urn:import:com.google.gwt.user.client.ui">
5+
<ui:style>
6+
.header{
7+
text-align: right;
8+
padding: 1%;
9+
}
10+
.icon{
11+
display: inline-block;
12+
opacity: 0.7;
13+
padding: 0px 5px;
14+
}
15+
.title{
16+
float: left;
17+
color: #fff;
18+
padding-left: 10px;
19+
opacity: 0.7;
20+
}
21+
</ui:style>
22+
<m:MaterialPanel>
23+
<m:MaterialPanel ui:field="headerPanel" addStyleNames="blue darken-2 {style.header}" >
24+
<m:MaterialLabel ui:field="lblTitle" addStyleNames="{style.title}" fontSize="1.2"/>
25+
<m:MaterialLink ui:field="btnRestore" tooltip="Restore" tooltipLocation="bottom" icon="mdi-image-filter-none" fontSize="1.2" textColor="white" addStyleNames="{style.icon}" />
26+
<m:MaterialLink ui:field="btnMaximize" tooltip="Maximize" tooltipLocation="bottom" icon="mdi-toggle-check-box-outline-blank" fontSize="1.2" textColor="white" addStyleNames="{style.icon}"/>
27+
<m:MaterialLink ui:field="btnClose" tooltip="Close" tooltipLocation="bottom" icon="mdi-navigation-close" fontSize="1.2" textColor="white" addStyleNames="{style.icon}"/>
28+
</m:MaterialPanel>
29+
</m:MaterialPanel>
30+
</ui:UiBinder>

src/main/java/gwt/material/design/client/resources/MaterialCSS.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,6 @@ public interface MaterialCSS extends CssResource {
4848

4949
//OLD UI
5050
String oldCheckBox();
51+
52+
5153
}

src/main/java/gwt/material/design/client/ui/MaterialCollapsibleItem.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public void addHeader(final Widget header) {
4040
public void addContent(final Widget content) {
4141
MaterialPanel panel = new MaterialPanel("");
4242
panel.addStyleName("collapsible-body");
43+
4344
panel.add(content);
4445
panel.getElement().getStyle().setPadding(2, Unit.EM);
4546
panel.getElement().getStyle().setMargin(0, Unit.EM);

src/main/java/gwt/material/design/client/ui/MaterialIcon.java

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -20,46 +20,41 @@
2020
* #L%
2121
*/
2222

23+
import gwt.material.design.client.custom.CustomIcon;
2324
import gwt.material.design.client.resources.MaterialResources;
2425

25-
import com.google.gwt.dom.client.Style.Cursor;
2626
import com.google.gwt.dom.client.Style.Unit;
2727
import com.google.gwt.user.client.ui.FocusPanel;
28-
import com.google.gwt.user.client.ui.HTMLPanel;
2928

3029
public class MaterialIcon extends FocusPanel {
3130

32-
protected HTMLPanel panel = new HTMLPanel("");
31+
CustomIcon iconElem;
3332

3433
protected String icon;
3534
protected String fontSize;
35+
private String size = "";
3636
private String type = "";
3737
private String color = "";
38-
private String textColor = "";
38+
private String background = "";
3939
protected String tooltip = "";
4040
private String shape = "";
4141
protected String title = "";
4242

4343
public MaterialIcon() {
4444
}
4545

46-
47-
4846
public MaterialIcon(String icon, String fontSize) {
4947
super();
5048
setIcon(icon);
5149
setFontSize(fontSize);
5250
}
5351

54-
55-
5652
public String getIcon() {
5753
return icon;
5854
}
5955

6056
public void setIcon(String icon) {
6157
this.icon = icon;
62-
this.getElement().getStyle().setCursor(Cursor.POINTER);
6358
generateIcon();
6459
}
6560

@@ -89,12 +84,10 @@ protected void onAttach() {
8984
}
9085

9186
public static native void initTooltip()/*-{
92-
$wnd.jQuery('.tooltipped').tooltip({
93-
"delay" : 10
94-
});
95-
}-*/;
96-
97-
87+
$wnd.jQuery('.tooltipped').tooltip({
88+
"delay" : 10
89+
});
90+
}-*/;
9891

9992
public String getTitle() {
10093
return title;
@@ -107,11 +100,32 @@ public void setTitle(String title) {
107100

108101
public void generateIcon() {
109102
this.clear();
110-
panel = new HTMLPanel("<i class='" + icon + " " + textColor +"-text " + " " + type + " materialIcon'></i>");
103+
104+
iconElem = new CustomIcon();
105+
106+
if (!icon.isEmpty())
107+
iconElem.addStyleName(icon);
108+
if (!type.isEmpty())
109+
iconElem.addStyleName(type);
110+
if(!background.isEmpty())
111+
this.addStyleName(background);
112+
if (!size.isEmpty()) {
113+
iconElem.addStyleName(size);
114+
}
115+
else {
116+
iconElem.addStyleName("small");
117+
}
118+
iconElem.addStyleName("materialIcon");
119+
120+
if (!color.isEmpty())
121+
iconElem.addStyleName(color + "-text");
122+
111123
if (!tooltip.isEmpty()) {
112-
panel = new HTMLPanel("<i class='tooltipped " + icon + " materialIcon' data-position='bottom' data-tooltip=" + tooltip + "></i>");
124+
iconElem.addStyleName("tooltipped");
125+
iconElem.getElement().setAttribute("data-position", "bottom");
126+
iconElem.getElement().setAttribute("data-tooltip", tooltip);
113127
}
114-
this.add(panel);
128+
this.add(iconElem);
115129
}
116130

117131
public String getType() {
@@ -120,7 +134,7 @@ public String getType() {
120134

121135
public void setType(String type) {
122136
this.type = type;
123-
if(type.equals("avatar")){
137+
if (type.equals("avatar")) {
124138
this.addStyleName(MaterialResources.INSTANCE.materialcss().collectionAvatarIcon());
125139
}
126140
generateIcon();
@@ -132,7 +146,6 @@ public String getColor() {
132146

133147
public void setColor(String color) {
134148
this.color = color;
135-
this.addStyleName(color);
136149
generateIcon();
137150
}
138151

@@ -145,16 +158,22 @@ public void setShape(String shape) {
145158
this.addStyleName(shape);
146159
}
147160

148-
public String getTextColor() {
149-
return textColor;
161+
public String getSize() {
162+
return size;
163+
}
164+
165+
public void setSize(String size) {
166+
this.size = size;
167+
generateIcon();
168+
}
169+
170+
public String getBackground() {
171+
return background;
150172
}
151173

152-
public void setTextColor(String textColor) {
153-
this.textColor = textColor;
174+
public void setBackground(String background) {
175+
this.background = background;
154176
generateIcon();
155177
}
156-
157-
158178

159-
160179
}

0 commit comments

Comments
 (0)