Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.uberfire.workbench.model.menu.impl;
  
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.Iterator;
  import java.util.List;
  import java.util.Map;
 import java.util.Set;
 
 
 import static java.util.Collections.*;
 import static org.uberfire.commons.validation.PortablePreconditions.*;

 
 public final class MenuBuilderImpl
         implements MenuFactory.MenuBuilder,
                    MenuFactory.ContributedMenuBuilder,
                    MenuFactory.TopLevelMenusBuilder,
                    MenuFactory.SubMenuBuilder,
                    MenuFactory.SubMenusBuilder,
                    MenuFactory.TerminalMenu,
                    MenuFactory.TerminalCustomMenu {
 
     public enum MenuType {
         TOP_LEVEL, CONTRIBUTED, REGULAR, GROUP, CUSTOM
     }
 
     final List<MenuItemmenuItems = new ArrayList<MenuItem>();
 
     private static class CurrentContext implements MenuFactory.CustomMenuBuilder {
 
         MenuItem menu = null;
 
         int order = 0;
         MenuType menuType = .;
         String caption = null;
         Set<Stringroles = new HashSet<String>();
         MenuPosition position = .;
         String contributionPoint = null;
         Command command = null;
         List<MenuItemmenuItems = new ArrayList<MenuItem>();
 
         @Override
         public void pushMenuFactory.CustomMenuBuilder element ) {
             .pushelement );
         }
 
         public MenuItem build() {
             if (  != null ) {
                 return ;
             }
             if ( .size() > 0 || .size() > 0 ) {
                 if ( .size() > 0 ) {
                     for ( final MenuFactory.CustomMenuBuilder current :  ) {
                         .addcurrent.build() );
                     }
                 }
                 return new MenuGroup() {
                     private final List<EnabledStateChangeListenerenabledStateChangeListeners = new ArrayList<EnabledStateChangeListener>();
                     private boolean isEnabled = true;
 
                     @Override
                     public List<MenuItemgetItems() {
                         return ;
                     }
 
                     @Override
                     public String getContributionPoint() {
                         return ;
                     }
 
                     @Override
                     public String getCaption() {
                         return ;
                     }
 
                     @Override
                     public MenuPosition getPosition() {
                         return ;
                     }
 
                     @Override
                     public int getOrder() {
                         return ;
                    }
                    @Override
                    public boolean isEnabled() {
                        return ;
                    }
                    @Override
                    public void setEnabledfinal boolean enabled ) {
                        this. = enabled;
                        notifyListenersenabled );
                    }
                    @Override
                    public void addEnabledStateChangeListenerfinal EnabledStateChangeListener listener ) {
                        .addlistener );
                    }
                    @Override
                    public String getSignatureId() {
                        if (  != null ) {
                            return getClass().getName() + "#" +  + "#" + ;
                        }
                        return getClass().getName() + "#" + ;
                    }
                    @Override
                    public Collection<StringgetRoles() {
                        return ;
                    }
                    @Override
                    public Collection<StringgetTraits() {
                        return emptyList();
                    }
                    private void notifyListenersfinal boolean enabled ) {
                        for ( final EnabledStateChangeListener listener :  ) {
                            listener.enabledStateChangedenabled );
                        }
                    }
                };
            } else if (  != null ) {
                return new MenuItemCommand() {
                    private final List<EnabledStateChangeListenerenabledStateChangeListeners = new ArrayList<EnabledStateChangeListener>();
                    private boolean isEnabled = true;
                    @Override
                    public Command getCommand() {
                        return ;  //To change body of implemented methods use File | Settings | File Templates.
                    }
                    @Override
                    public String getContributionPoint() {
                        return ;
                    }
                    @Override
                    public String getCaption() {
                        return ;
                    }
                    @Override
                    public MenuPosition getPosition() {
                        return ;
                    }
                    @Override
                    public int getOrder() {
                        return ;
                    }
                    @Override
                    public boolean isEnabled() {
                        return ;
                    }
                    @Override
                    public void setEnabledfinal boolean enabled ) {
                        this. = enabled;
                        notifyListenersenabled );
                    }
                    @Override
                    public void addEnabledStateChangeListenerfinal EnabledStateChangeListener listener ) {
                        .addlistener );
                    }
                    @Override
                    public String getSignatureId() {
                        if (  != null ) {
                            return getClass().getName() + "#" +  + "#" + ;
                        }
                        return getClass().getName() + "#" + ;
                    }
                    @Override
                    public Collection<StringgetRoles() {
                        return ;
                    }
                    @Override
                    public Collection<StringgetTraits() {
                        return emptyList();
                    }
                    private void notifyListenersfinal boolean enabled ) {
                        for ( final EnabledStateChangeListener listener :  ) {
                            listener.enabledStateChangedenabled );
                        }
                    }
                };
            }
            return new MenuItem() {
                private final List<EnabledStateChangeListenerenabledStateChangeListeners = new ArrayList<EnabledStateChangeListener>();
                private boolean isEnabled = true;
                @Override
                public String getContributionPoint() {
                    return ;
                }
                @Override
                public String getCaption() {
                    return ;
                }
                @Override
                public MenuPosition getPosition() {
                    return ;
                }
                @Override
                public int getOrder() {
                    return ;
                }
                @Override
                public boolean isEnabled() {
                    return ;
                }
                @Override
                public void setEnabledfinal boolean enabled ) {
                    this. = enabled;
                    notifyListenersenabled );
                }
                @Override
                public void addEnabledStateChangeListenerfinal EnabledStateChangeListener listener ) {
                    .addlistener );
                }
                @Override
                public String getSignatureId() {
                    if (  != null ) {
                        return getClass().getName() + "#" +  + "#" + ;
                    }
                    return getClass().getName() + "#" + ;
                }
                @Override
                public Collection<StringgetRoles() {
                    return ;
                }
                @Override
                public Collection<StringgetTraits() {
                    return emptyList();
                }
                private void notifyListenersfinal boolean enabled ) {
                    for ( final EnabledStateChangeListener listener :  ) {
                        listener.enabledStateChangedenabled );
                    }
                }
            };
        }
    }
    public MenuBuilderImplfinal MenuType menuType,
                            final String caption ) {
        final CurrentContext currentContext = new CurrentContext();
        currentContext.caption = checkNotEmpty"caption"caption );
        currentContext.menuType = checkNotNull"menuType"menuType );
        .pushcurrentContext );
    }
    public MenuBuilderImplfinal MenuType menuType,
                            final MenuFactory.CustomMenuBuilder builder ) {
        .pushbuilder );
    }
    @Override
    public MenuBuilderImpl newContributedMenufinal String caption ) {
        final CurrentContext currentContext = new CurrentContext();
        currentContext.caption = checkNotEmpty"caption"caption );
        currentContext.menuType = .;
        .pushcurrentContext );
        return this;
    }
    @Override
    public MenuBuilderImpl newTopLevelMenufinal MenuItem menu ) {
        final CurrentContext currentContext = new CurrentContext();
        currentContext.menu = checkNotNull"menu"menu );
        .pushcurrentContext );
        return this;
    }
    @Override
    public MenuBuilderImpl newTopLevelMenufinal String caption ) {
        final CurrentContext currentContext = new CurrentContext();
        currentContext.caption = checkNotEmpty"caption"caption );
        currentContext.menuType = .;
        .pushcurrentContext );
        return this;
    }
    @Override
        .pushbuilder );
        return this;
    }
    @Override
    public MenuBuilderImpl menufinal String caption ) {
        final CurrentContext currentContext = new CurrentContext();
        currentContext.caption = checkNotEmpty"caption"caption );
        currentContext.menuType = .;
        .pushcurrentContext );
        return this;
    }
    @Override
    public MenuBuilderImpl menus() {
        ( (CurrentContext.peek() ). = .;
        return this;
    }
    @Override
        .pushbuilder );
        return this;
    }
    @Override
    public MenuBuilderImpl submenufinal String caption ) {
        final CurrentContext currentContext = new CurrentContext();
        currentContext.caption = checkNotEmpty"caption"caption );
        currentContext.menuType = .;
        .pushcurrentContext );
        return this;
    }
    @Override
    public MenuBuilderImpl contributeTofinal String contributionPoint ) {
        ( (CurrentContext.peek() ). = checkNotEmpty"contributionPoint"contributionPoint );
        return this;
    }
    @Override
    public MenuBuilderImpl withItemsfinal List items ) {
        ( (CurrentContext.peek() ). = new ArrayList<MenuItem>( checkNotEmpty"items"items ) );
        return this;
    }
    @Override
    public MenuBuilderImpl respondsWithfinal Command command ) {
        ( (CurrentContext.peek() ). = checkNotNull"command"command );
        return this;
    }
    @Override
    public MenuBuilderImpl withRolefinal String role ) {
        ( (CurrentContext.peek() )..addrole );
        return this;
    }
    @Override
    public MenuBuilderImpl withRolesCollection roles ) {
        for ( Iterator it = roles.iterator(); it.hasNext(); ) {
            String role = (Stringit.next();
            ( (CurrentContext.peek() )..addrole );
        }
        return this;
    }
    @Override
    public MenuBuilderImpl withRolesfinal String... roles ) {
        for ( final String role : checkNotEmpty"roles"roles ) ) {
            ( (CurrentContext.peek() )..addrole );
        }
        return this;
    }
    @Override
    public MenuBuilderImpl orderfinal int order ) {
        ( (CurrentContext.peek() ). = order;
        return this;
    }
    @Override
    public MenuBuilderImpl positionfinal MenuPosition position ) {
        ( (CurrentContext.peek() ). = checkNotNull"position"position );
        return this;
    }
    @Override
    public MenuBuilderImpl endMenus() {
        return this;
    }
    @Override
    public MenuBuilderImpl endMenu() {
        if ( .size() == 1 ) {
            .add.pop().build() );
        } else {
            final MenuFactory.CustomMenuBuilder active = .pop();
            .peek().pushactive );
        }
        return this;
    }
    @Override
    public Menus build() {
        .clear();
        return new Menus() {
            @Override
            public List<MenuItemgetItems() {
                return unmodifiableList );
            }
            @Override
            public Map<ObjectMenuItemgetItemsMap() {
                return new HashMap<ObjectMenuItem>() {{
                    for ( final MenuItem menuItem :  ) {
                        putmenuItemmenuItem );
                    }
                }};
            }
        };
    }
New to GrepCode? Check out our FAQ X