⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shortcutparameteritem.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
字号:
/*
 */
package com.sslexplorer.extensions;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import org.apache.struts.action.ActionMessage;

import com.sslexplorer.boot.PropertyDefinition;
import com.sslexplorer.boot.PropertyList;

/**
 *  
 */
public class ShortcutParameterItem implements Comparable {
    
    public final static String DUMMY_PASSWORD = "******";
    
	private ApplicationParameterDefinition definition;

	private Object value;

	private Pair[] listItems;

	private int rows, columns;
	
	private ExtensionDescriptor app;

	public ShortcutParameterItem(ExtensionDescriptor app,
			ApplicationParameterDefinition definition, String value) {
		this.definition = definition;
		this.app = app;

		rows = 0;
		columns = 0;

		if (definition.getType() == PropertyDefinition.TYPE_LIST) {
			StringTokenizer t = new StringTokenizer(definition.getTypeMeta(),
					",");
			List listItemsList = new ArrayList();
			while (t.hasMoreTokens()) {
				String n = t.nextToken();
				String k = "application." + app.getId() + "." + definition.getName() + ".value." + n;
				String v = app.getMessageResources().getMessage(k);
				Pair pair = new Pair(n, v);
				if (n.equals(value)) {
					this.value = pair.getValue();
				}
				listItemsList.add(pair);
			}
			listItems = new Pair[listItemsList.size()];
			listItemsList.toArray(listItems);
		} else if (definition.getType() == PropertyDefinition.TYPE_MULTI_ENTRY_LIST) {
			this.value = new PropertyList(value).getAsTextFieldText();
			StringTokenizer t = new StringTokenizer(definition.getTypeMeta(),
					"x");
			try {
				columns = Integer.parseInt(t.nextToken());
				rows = Integer.parseInt(t.nextToken());
			} catch (NumberFormatException nfe) {

			}
		} else if (definition.getType() == PropertyDefinition.TYPE_TEXT_AREA) {
			this.value = value;
			StringTokenizer t = new StringTokenizer(definition.getTypeMeta(),
					"x");
			try {
				columns = Integer.parseInt(t.nextToken());
				rows = Integer.parseInt(t.nextToken());
			} catch (NumberFormatException nfe) {

			}
		} else if (definition.getType() == PropertyDefinition.TYPE_BOOLEAN) {
            String trueVal = (String)(((List)definition.getTypeMetaObject()).get(0));
            this.value = value.equals(trueVal) ? Boolean.TRUE : Boolean.FALSE;
		} else if (definition.getType() == PropertyDefinition.TYPE_STRING) {
			try {
				columns = Integer.parseInt(definition.getTypeMeta());
			} catch (NumberFormatException nfe) {
			}
			this.value = value;
		} else if (definition.getType() == PropertyDefinition.TYPE_PASSWORD) {
			try {
				columns = Integer.parseInt(definition.getTypeMeta());
			} catch (NumberFormatException nfe) {
			}
			this.value = value;
		} else if (definition.getType() == PropertyDefinition.TYPE_TIME_IN_MS) {
			try {
				int val = Integer.parseInt(definition.getDefaultValue());
				if (definition.getTypeMeta().equalsIgnoreCase("s")) {
					this.value = String.valueOf(val / 1000);
				} else if (definition.getTypeMeta().equalsIgnoreCase("m")) {
					this.value = String.valueOf(val / 1000 / 60);
				} else if (definition.getTypeMeta().equalsIgnoreCase("h")) {
					this.value = String.valueOf(val / 1000 / 60 / 60);
				} else if (definition.getTypeMeta().equalsIgnoreCase("d")) {
					this.value = String.valueOf(val / 1000 / 60 / 60 / 24);
				}
			} catch (Exception e) {
			}
		} else {
			this.value = value;
		}

		// 
	}
	
	public String getPasswordValue() {
	    return getValue() == null || getValue().equals("") ? "" : DUMMY_PASSWORD;
	}

	public ActionMessage validateItem() {
		if (getType() == PropertyDefinition.TYPE_INTEGER) {
			if (getValue().toString().length() == 0) {
				if (!definition.isOptional()) {
					return new ActionMessage("error.integerRequired", app.getMessageResources()
							.getMessage("application." + app.getId() + "." + getName() + ".name"));
				}
			} else {
				try {
					Integer.parseInt(getValue().toString());
				} catch (NumberFormatException nfe) {
					return new ActionMessage("error.integerRequired", app.getMessageResources()
									.getMessage("application." + app.getId() + "." + getName() + ".name"));
				}
			}
		} else if (getType() == PropertyDefinition.TYPE_STRING
				|| getType() == PropertyDefinition.TYPE_TEXT_AREA
				|| getType() == PropertyDefinition.TYPE_PASSWORD) {
			if (getValue().toString().length() == 0) {
				if (!definition.isOptional()) {
					return new ActionMessage("error.requiredParameterEmpty",
					                app.getMessageResources()
									.getMessage("application." + app.getId() + "." + getName() + ".name"));

				}
			}
		}
		return null;
	}

	public boolean getOptional() {
		return definition.isOptional();
	}

	public String getLocalisedName() {
	    String key = "application." + app.getId() + "." +  getName() + ".name";
		return app.getMessageResources().getMessage(key);
	}

	public String getLocalisedDescription() {
	    String key = "application." + app.getId() + "." +  getName() + ".description";
		return app.getMessageResources().isPresent(key) ? app.getMessageResources().getMessage(key) : getLocalisedName();
	}

	public String getLocalisedCategory() {
	    String key = "application." + app.getId() + ".category." +  getCategory() + ".name";
		return app.getMessageResources().isPresent(key) ? app.getMessageResources().getMessage(key) : "";
	}

	public int getColumns() {
		return columns;
	}

	public int getRows() {
		return rows;
	}

	/**
	 * @return Returns the definition.
	 */
	public PropertyDefinition getDefinition() {
		return definition;
	}

	/**
	 * @param definition
	 *            The definition to set.
	 */
	public void setDefinition(ApplicationParameterDefinition definition) {
		this.definition = definition;
	}

	/**
	 * @return Returns the value.
	 */
	public String getName() {
		return definition.getName();
	}

	/**
	 * @return Returns the value.
	 */
	public int getCategory() {
		return definition.getCategory();
	}

	/**
	 * @return Returns the value.
	 */
	public String getDefaultValue() {
		return definition.getDefaultValue();
	}

	/**
	 * @return Returns the value.
	 */
	public String getDefaultText() {
		String val = getDefaultValue();
		if (definition.getType() == PropertyDefinition.TYPE_PASSWORD) {
			val = "";
		} else if (definition.getType() == PropertyDefinition.TYPE_MULTI_ENTRY_LIST) {
			PropertyList list = new PropertyList(definition.getDefaultValue());
			val = list.size() > 0 ? list.getPropertyItem(0) : "";
		} else if (definition.getType() == PropertyDefinition.TYPE_LIST) {
			try {
				int defaultItem = Integer
						.parseInt(definition.getDefaultValue());
				String k = "application." + app.getId() + "." + definition.getName() + ".value." + defaultItem;
				val = app.getMessageResources().getMessage(k);
			} catch (Exception e) {
			}
		} else if (definition.getType() == PropertyDefinition.TYPE_TIME_IN_MS) {
			try {
				int defaultItem = Integer.parseInt(getDefaultValue());
				if (definition.getTypeMeta().equalsIgnoreCase("s")) {
					val = String.valueOf(defaultItem / 1000);
				} else if (definition.getTypeMeta().equalsIgnoreCase("m")) {
					val = String.valueOf(defaultItem / 1000 / 60);
				} else if (definition.getTypeMeta().equalsIgnoreCase("h")) {
					val = String.valueOf(defaultItem / 1000 / 60 / 60);
				} else if (definition.getTypeMeta().equalsIgnoreCase("d")) {
					val = String.valueOf(defaultItem / 1000 / 60 / 60 / 24);
				} else {
					val = String.valueOf(val);
				}
			} catch (Exception e) {
				val = String.valueOf(getDefaultValue());
			}
		}
		if (val.length() > 15) {
			val = val.substring(0, 15);
		}
		return val;
	}

	/**
	 * @return Returns the value.
	 */
	public String getTypeMeta() {
		return definition.getTypeMeta();
	}

	/**
	 * @return Returns the value.
	 */
	public Pair[] getListItems() {
		return listItems;
	}

	/**
	 * @return Returns the value.
	 */
	public Object getValue() {
		return value;
	}

	/**
	 * @return Returns the value.
	 */
	public boolean getSelected() {
		return value.equals(Boolean.TRUE);
	}

	/**
	 * @return Returns the value.
	 */
	public void setSelected(boolean selected) {
		this.value = Boolean.valueOf(selected);
	}

	/**
	 * @param value
	 *            The value to set.
	 */
	public void setValue(Object value) {
	    if(getType() != PropertyDefinition.TYPE_PASSWORD ||
	                    !value.equals(DUMMY_PASSWORD)) {
	        this.value = value;
	    }
	}

	public int getType() {
		return definition.getType();
	}

	public class Pair {
		Object value;

		String label;

		public Pair(Object value, String label) {
			this.value = value;
			this.label = label;
		}

		public Object getValue() {
			return value;
		}

		public String getLabel() {
			return label;
		}

		public void setValue(Object value) {
			this.value = value;
		}

		public String toString() {
			return "pair[label=" + label + ",value=" + value + "]";
		}
	}

	public Object getPropertyValue() {
		if (definition.getType() == PropertyDefinition.TYPE_MULTI_ENTRY_LIST) {
			PropertyList l = new PropertyList();
			l.setAsTextFieldText(getValue().toString());
			return l.getAsPropertyText();
		}
        else if (definition.getType() == PropertyDefinition.TYPE_BOOLEAN) {
            String trueVal = (String)(((List)definition.getTypeMetaObject()).get(0));
            String falseVal = (String)(((List)definition.getTypeMetaObject()).get(1));
            return Boolean.TRUE.equals(getValue()) ? trueVal : falseVal;
        }
		return getValue();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Comparable#compareTo(java.lang.Object)
	 */
	public int compareTo(Object obj) {
	    return definition.compareTo(((ShortcutParameterItem) obj)
				.getDefinition());
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -