/*
* Copyright (c) 2010-2017 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.evolveum.midpoint.web.component.menu.cog;
import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn;
import org.apache.wicket.model.IModel;
import java.io.Serializable;
/**
* @author lazyman
*/
public class InlineMenuItem implements Serializable {
private IModel<String> label;
private IModel<Boolean> enabled;
private IModel<Boolean> visible;
private InlineMenuItemAction action;
private boolean submit;
private int id = -1;
private String buttonIconCssClass;
private String buttonColorCssClass;
private IModel<String> confirmationMessageModel = null;
private boolean showConfirmationDialog = false;
public static enum FOCUS_LIST_INLINE_MENU_ITEM_ID {
ENABLE(0), DISABLE(1), RECONCILE(2),
UNLOCK(3), DELETE(4), MERGE(5),
HEADER_ENABLE(0), HEADER_RECONCILE(1),
HEADER_DISABLE(2);
private int menuItemId = -1;
FOCUS_LIST_INLINE_MENU_ITEM_ID(final int id){menuItemId = id;}
public int getMenuItemId(){
return menuItemId;
}
public String toString(){return Integer.toString(menuItemId);}
}
public static enum RESOURCE_INLINE_MENU_ITEM_ID {
TEST_CONNECTION(0),
HEADER_TEST_CONNECTION(1),
EDIT_XML(1), HEADER_DELETE(0), DELETE_RESOURCE(2),
DELETE_SYNC_TOKEN(3), EDIT_USING_WIZARD(4);
private int menuItemId = -1;
RESOURCE_INLINE_MENU_ITEM_ID(final int id){menuItemId = id;}
public int getMenuItemId(){
return menuItemId;
}
public String toString(){return Integer.toString(menuItemId);}
}
public static enum TASKS_INLINE_MENU_ITEM_ID {
SUSPEND(0), RESUME(1), RUN_NOW(2), DELETE(3), DELETE_CLOSED(4),
NODE_STOP_SCHEDULER(1), NODE_STOP_SCHEDULER_TASK(2), NODE_START(0), NODE_DELETE(3);
private int menuItemId = -1;
TASKS_INLINE_MENU_ITEM_ID(final int id){menuItemId = id;}
public int getMenuItemId(){
return menuItemId;
}
public String toString(){return Integer.toString(menuItemId);}
}
public InlineMenuItem() {
this(null, null);
}
public InlineMenuItem(IModel<String> label) {
this(label, null);
}
public InlineMenuItem(IModel<String> label, InlineMenuItemAction action) {
this(label, false, action);
}
public InlineMenuItem(IModel<String> label, boolean submit, InlineMenuItemAction action) {
this(label, null, null, submit, action, -1, "", "");
}
public InlineMenuItem(IModel<String> label, boolean submit, InlineMenuItemAction action, int id) {
this(label, null, null, submit, action, id, "", DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString());
}
public InlineMenuItem(IModel<String> label, boolean submit, InlineMenuItemAction action, int id,
String buttonIconCssClass) {
this(label, null, null, submit, action, id, buttonIconCssClass, DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString());
}
public InlineMenuItem(IModel<String> label, boolean submit, InlineMenuItemAction action, int id,
String buttonIconCssClass, String buttonColorCssClass) {
this(label, null, null, submit, action, id, buttonIconCssClass, buttonColorCssClass);
}
public InlineMenuItem(IModel<String> label, IModel<Boolean> enabled, IModel<Boolean> visible,
InlineMenuItemAction action) {
this(label, enabled, visible, false, action, -1, "", "");
}
public InlineMenuItem(IModel<String> label, IModel<Boolean> enabled, IModel<Boolean> visible, boolean submit,
InlineMenuItemAction action) {
this(label, enabled, visible, submit, action, -1, "", "");
}
public InlineMenuItem(IModel<String> label, IModel<Boolean> enabled, IModel<Boolean> visible, boolean submit,
InlineMenuItemAction action, int id, String buttonIconCssClass, String buttonColorCssClass) {
this.label = label;
this.enabled = enabled;
this.visible = visible;
this.action = action;
this.submit = submit;
this.id = id;
this.buttonIconCssClass = buttonIconCssClass;
this.buttonColorCssClass = buttonColorCssClass;
}
public InlineMenuItemAction getAction() {
return action;
}
public IModel<Boolean> getEnabled() {
return enabled;
}
public IModel<String> getLabel() {
return label;
}
/**
* if true, link must be rendered as submit link button, otherwise normal ajax link
*/
public boolean isSubmit() {
return submit;
}
public IModel<Boolean> getVisible() {
return visible;
}
public void setVisible(IModel<Boolean> visible) {
this.visible = visible;
}
public boolean isDivider() {
return label == null && action == null;
}
public boolean isMenuHeader() {
return label != null && action == null;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getButtonIconCssClass() {
return buttonIconCssClass;
}
public void setButtonIconCssClass(String buttonIconCssClass) {
this.buttonIconCssClass = buttonIconCssClass;
}
public String getButtonColorCssClass() {
return buttonColorCssClass;
}
public void setButtonColorCssClass(String buttonColorCssClass) {
this.buttonColorCssClass = buttonColorCssClass;
}
public IModel<String> getConfirmationMessageModel() {
return confirmationMessageModel;
}
public void setConfirmationMessageModel(IModel<String> confirmationMessageModel) {
this.confirmationMessageModel = confirmationMessageModel;
}
public boolean isShowConfirmationDialog() {
return showConfirmationDialog;
}
public void setShowConfirmationDialog(boolean showConfirmationDialog) {
this.showConfirmationDialog = showConfirmationDialog;
}
}