Skip to content

Commit 0269a43

Browse files
authored
Merge branch 'master' into feature/fixed
2 parents 95e8227 + 1ca1b3a commit 0269a43

File tree

8 files changed

+55
-14
lines changed

8 files changed

+55
-14
lines changed

src/main/java/com/flowingcode/addons/applayout/AppDrawer.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,13 @@ private Component[] createComponents(List<MenuItem> menuItems) {
7272
} else {
7373
if (menuItem.getIcon()==null) {
7474
PaperItem pi = new PaperItem(menuItem.getLabel(),menuItem.getCommand(), this);
75+
pi.setEnabled(menuItem.isEnabled());
7576
components.add(pi);
7677
menuItem.setRefreshCallback(()->pi.setText(menuItem.getLabel()));
7778
} else {
7879
PaperIconItem pi = new PaperIconItem(menuItem.getLabel(), menuItem.getIcon(),menuItem.getCommand(), this);
7980
components.add(pi);
81+
pi.setEnabled(menuItem.isEnabled());
8082
menuItem.setRefreshCallback(()->{
8183
pi.setTitle(menuItem.getLabel());
8284
pi.setIcon(menuItem.getIcon());
@@ -90,7 +92,9 @@ private Component[] createComponents(List<MenuItem> menuItems) {
9092
private CollapseButton collectMenus(MenuItem topMenuItem) {
9193
List<MenuItem> menuItems = topMenuItem.getSubMenuItems();
9294
Component[] components = createComponents(menuItems);
93-
return new CollapseButton(topMenuItem.getLabel(), topMenuItem.getIcon(), components);
95+
CollapseButton collapseButton = new CollapseButton(topMenuItem.getLabel(), topMenuItem.getIcon(), components);
96+
collapseButton.setEnabled(topMenuItem.isEnabled());
97+
return collapseButton;
9498
}
9599

96100
}

src/main/java/com/flowingcode/addons/applayout/AppHeader.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,9 @@ public void setFixed(boolean fixed) {
7777
public void setReveals(boolean reveals) {
7878
this.getElement().setAttribute("reveals", reveals);
7979
}
80+
81+
void setHeight(String height) {
82+
appToolbar.getElement().getStyle().set("height", height);
83+
}
84+
8085
}

src/main/java/com/flowingcode/addons/applayout/AppLayout.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ private void configureAppLayout(String title, Image logo) {
7272
setHeight("64px");
7373
}
7474

75+
@Override
76+
public void setHeight(String height) {
77+
super.setHeight(height);
78+
header.setHeight(height);
79+
}
80+
7581
public void setMenuItems(MenuItem... menuitems) {
7682
drawer.setMenuItems(Arrays.asList(menuitems));
7783
}
@@ -93,6 +99,11 @@ public boolean isMenuVisible() {
9399
return drawer.isVisible();
94100
}
95101

102+
/**Set the toolbar title*/
103+
public void setCaption(String caption) {
104+
header.getAppToolbar().setTitle(caption);
105+
}
106+
96107
@Override
97108
public void configurePage(InitialPageSettings settings) {
98109
settings.addMetaTag("viewport", "width=device-width, initial-scale=1.0");

src/main/java/com/flowingcode/addons/applayout/AppToolbar.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,14 @@ public AppToolbar(Image logo, String title, AppDrawer drawer) {
5858
ctitle = logo;
5959
this.add(ctitle);
6060
}
61-
if (title!=null) {
62-
divTitle = new Div();
63-
divTitle.setText(title);
64-
divTitle.getElement().setAttribute("main-title", true);
65-
this.add(divTitle);
66-
}
61+
divTitle = new Div();
62+
divTitle.getElement().setAttribute("main-title", true);
63+
this.add(divTitle);
64+
setTitle(title);
65+
}
66+
67+
public void setTitle(String title) {
68+
divTitle.setText(title);
6769
}
6870

6971
public void setToolbarIconButtons(MenuItem[] menuItems) {
@@ -79,6 +81,7 @@ private List<PaperIconButton> createToolbarIconButtons(MenuItem[] menuItems) {
7981
List<PaperIconButton> result = new ArrayList<>();
8082
for (MenuItem menuItem : menuItems) {
8183
PaperIconButton paperIconButton = new PaperIconButton(menuItem.getIcon(),menuItem.getCommand());
84+
paperIconButton.setEnabled(menuItem.isEnabled());
8285
menuItem.setRefreshCallback(() -> paperIconButton.setIcon(menuItem.getIcon()));
8386
result.add(paperIconButton);
8487
}

src/main/java/com/flowingcode/addons/applayout/PaperIconButton.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
*/
2222

2323
import com.vaadin.flow.component.Component;
24+
import com.vaadin.flow.component.HasEnabled;
2425
import com.vaadin.flow.component.Tag;
2526
import com.vaadin.flow.component.dependency.HtmlImport;
2627
import com.vaadin.flow.server.Command;
@@ -34,8 +35,8 @@
3435
@SuppressWarnings("serial")
3536
@Tag("paper-icon-button")
3637
@HtmlImport("bower_components/paper-icon-button/paper-icon-button.html")
37-
public class PaperIconButton extends Component {
38-
38+
public class PaperIconButton extends Component implements HasEnabled {
39+
3940
public PaperIconButton(String icon) {
4041
this.setIcon(icon);
4142
}

src/main/java/com/flowingcode/addons/applayout/PaperItem.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
*/
2222

2323
import com.vaadin.flow.component.Component;
24+
import com.vaadin.flow.component.HasEnabled;
2425
import com.vaadin.flow.component.HasSize;
2526
import com.vaadin.flow.component.HasText;
2627
import com.vaadin.flow.component.Tag;
@@ -37,8 +38,8 @@
3738
@SuppressWarnings("serial")
3839
@HtmlImport("bower_components/paper-item/paper-item.html")
3940
@Tag("paper-item")
40-
public class PaperItem extends Component implements HasText, HasSize {
41-
41+
public class PaperItem extends Component implements HasEnabled, HasText, HasSize {
42+
4243
public PaperItem(String title) {
4344
this(title, null,null);
4445
}

src/main/java/com/flowingcode/addons/applayout/menu/MenuItem.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class MenuItem {
3939
private Command command;
4040
private List<MenuItem> subMenuItems = new ArrayList<>();
4141
private Runnable refreshCallback;
42+
private boolean enabled = true;
4243

4344
public MenuItem(String label, MenuItem... subMenuItems) {
4445
this.label = label;
@@ -68,7 +69,9 @@ public String getLabel() {
6869

6970
public void setLabel(String label) {
7071
this.label = label;
71-
this.refreshCallback.run();
72+
if (refreshCallback!=null) {
73+
this.refreshCallback.run();
74+
}
7275
}
7376

7477
public Command getCommand() {
@@ -82,10 +85,12 @@ public void setCommand(Command command) {
8285
public String getIcon() {
8386
return icon;
8487
}
85-
88+
8689
public void setIcon(String icon) {
8790
this.icon = icon;
88-
this.refreshCallback.run();
91+
if (refreshCallback!=null) {
92+
this.refreshCallback.run();
93+
}
8994
}
9095

9196
public List<MenuItem> getSubMenuItems() {
@@ -111,5 +116,12 @@ public void setRefreshCallback(Runnable refreshCallback) {
111116
this.refreshCallback = refreshCallback;
112117
}
113118

119+
public boolean isEnabled() {
120+
return enabled;
121+
}
122+
123+
public void setEnabled(boolean enabled) {
124+
this.enabled = enabled;
125+
}
114126

115127
}

src/main/resources/META-INF/resources/frontend/styles/applayout-styles.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@
3333
margin-left: 24px;
3434
}
3535

36+
paper-icon-button {
37+
--paper-icon-button-disabled-text: var(--lumo-disabled-text-color);
38+
}
39+
3640
paper-progress {
3741
display: block;
3842
width: 100%;

0 commit comments

Comments
 (0)