Skip to content

Commit 81d9ed3

Browse files
committed
Add support for disabled items
1 parent 5c1d4e9 commit 81d9ed3

File tree

6 files changed

+24
-5
lines changed

6 files changed

+24
-5
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/AppToolbar.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ private List<PaperIconButton> createToolbarIconButtons(MenuItem[] menuItems) {
7979
List<PaperIconButton> result = new ArrayList<>();
8080
for (MenuItem menuItem : menuItems) {
8181
PaperIconButton paperIconButton = new PaperIconButton(menuItem.getIcon(),menuItem.getCommand());
82+
paperIconButton.setEnabled(menuItem.isEnabled());
8283
menuItem.setRefreshCallback(() -> paperIconButton.setIcon(menuItem.getIcon()));
8384
result.add(paperIconButton);
8485
}

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: 8 additions & 0 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;
@@ -111,5 +112,12 @@ public void setRefreshCallback(Runnable refreshCallback) {
111112
this.refreshCallback = refreshCallback;
112113
}
113114

115+
public boolean isEnabled() {
116+
return enabled;
117+
}
118+
119+
public void setEnabled(boolean enabled) {
120+
this.enabled = enabled;
121+
}
114122

115123
}

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)