📄 shortcutparameteritem.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 + -