dynamictoolbarbean.java
来自「OperaMasks是一种基于J2EE的Web开发技术」· Java 代码 · 共 192 行
JAVA
192 行
package demo;
import javax.faces.component.UIComponent;
import javax.faces.component.UISelectItems;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import org.operamasks.faces.annotation.ManagedBean;
import org.operamasks.faces.annotation.ManagedBeanScope;
import org.operamasks.faces.component.form.impl.UICombo;
import org.operamasks.faces.component.widget.UIButton;
import org.operamasks.faces.component.widget.UISeparator;
import org.operamasks.faces.component.widget.UIToolBar;
import org.operamasks.faces.component.widget.menu.UICommandMenuItem;
import org.operamasks.faces.component.widget.menu.UILinkMenuItem;
import org.operamasks.faces.component.widget.menu.UIMenu;
import org.operamasks.faces.util.UIComponentFactory;
@ManagedBean(name="DynamicToolBar", scope=ManagedBeanScope.SESSION)
public class DynamicToolBarBean {
private SelectItem[] colors = {
new SelectItem("Red", "Red Color"),
new SelectItem("Green", "Green Color"),
new SelectItem("Blue", "Blue Color")
};
private UIToolBar toolbar;
private String response;
private int seperatorNum = 0;
public UIToolBar getToolbar() {
return toolbar;
}
public void setToolbar(UIToolBar toolbar) {
this.toolbar = toolbar;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
public void addMenu() {
for (UIComponent component : toolbar.getChildren()) {
if (component instanceof UIMenu) {
response = "Menu has already added.";
return;
}
}
FacesContext context = FacesContext.getCurrentInstance();
UIComponentFactory factory = new UIComponentFactory();
UICommandMenuItem text = createMenuItem(context, factory, "鏂囨湰鏂囦欢");
text.setId("m_text");
UICommandMenuItem xml = createMenuItem(context, factory, "XML鏂囦欢");
xml.setId("m_xml");
UICommandMenuItem java = createMenuItem(context, factory, "Java鏂囦欢");
java.setId("m_java");
UIMenu _new = createMenu(context, factory, "鏂板缓", "images/new.gif");
_new.setId("m_new");
_new.getChildren().add(text);
_new.getChildren().add(xml);
_new.getChildren().add(java);
UICommandMenuItem open = createCommandMenuItem(context, factory, "鎵撳紑", "images/open.gif");
open.setId("m_open");
UICommandMenuItem save = createCommandMenuItem(context, factory, "淇濆瓨", "images/save.gif");
save.setId("m_save");
UISeparator separator = createSeparator(context, factory);
UILinkMenuItem close = createLinkMenuItem(context, factory, "鍏抽棴", "dynamicToolbar.jsf", "return confirm('Are you sure?')");
close.setId("m_close");
UIMenu file = createMenu(context, factory, "File", null, "#{DynamicToolBar.menuAction}");
file.setId("m_file");
file.getChildren().add(_new);
file.getChildren().add(open);
file.getChildren().add(save);
file.getChildren().add(separator);
file.getChildren().add(close);
toolbar.addItem(file);
}
private UILinkMenuItem createLinkMenuItem(FacesContext context,
UIComponentFactory factory, String label, String value,
String onclick) {
factory.clear();
factory.addAttribute("label", label).
addAttribute("value", value).
addAttribute("onclick", onclick);
return factory.createLinkMenuItem(context);
}
private UISeparator createSeparator(FacesContext context,
UIComponentFactory factory) {
factory.clear();
UISeparator separator = (UISeparator)factory.createComponent(context, UISeparator.COMPONENT_TYPE);
separator.setId("spa_" + this.seperatorNum++);
return separator;
}
private UIMenu createMenu(FacesContext context, UIComponentFactory factory,
String label, String image) {
return createMenu(context, factory, label, image, null);
}
private UIMenu createMenu(FacesContext context, UIComponentFactory factory,
String label, String image, String action) {
factory.clear();
factory.addAttribute("label", label);
if (image != null)
factory.addAttribute("image", image);
if (action != null)
factory.addAttribute("action", action);
return factory.createMenu(context);
}
private UICommandMenuItem createMenuItem(FacesContext context,
UIComponentFactory factory, String label) {
factory.clear();
factory.addAttribute("label", label);
return factory.createCommandMenuItem(context);
}
private UICommandMenuItem createCommandMenuItem(FacesContext context,
UIComponentFactory factory, String label, String image) {
factory.clear();
factory.addAttribute("label", label);
if (image != null)
factory.addAttribute("image", image);
return factory.createCommandMenuItem(context);
}
public void addButton() {
for (UIComponent component : toolbar.getChildren()) {
if (component instanceof UIButton) {
response = "Button has already added.";
return;
}
}
UIButton btn = createButton();
btn.setId("click_me");
toolbar.addItem(btn);
}
private UIButton createButton() {
UIButton btn = (UIButton) FacesContext.getCurrentInstance()
.getApplication().createComponent(UIButton.COMPONENT_TYPE);
btn.setValue("Click me");
btn.setImage("images/example.gif");
btn.setActionExpression(FacesContext.getCurrentInstance()
.getApplication().getExpressionFactory()
.createMethodExpression(
FacesContext.getCurrentInstance().getELContext(),
"#{DynamicToolBar.click}", Void.class, new Class[] {}));
return btn;
}
private boolean isNotMenu(UIComponent component) {
return (!(component instanceof UIMenu) && !(component instanceof UICommandMenuItem));
}
public void addCombo() {
for (UIComponent component : toolbar.getChildren()) {
if (component instanceof UICombo) {
response = "Combo has already added.";
return;
}
}
UIComponentFactory factory = new UIComponentFactory().
addAttribute("valueChangeListener", "#{DynamicToolBar.valueChange}").
addAttribute("emptyText", "璇烽
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?