📄 stringlistparameter.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: StringListParameter.java
package org.gudy.azureus2.ui.swt.config;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Listener;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.ui.swt.Utils;
// Referenced classes of package org.gudy.azureus2.ui.swt.config:
// Parameter, ParameterChangeListener
public class StringListParameter extends Parameter
{
Control list;
final String name;
final String default_value;
private final String values[];
private final boolean useCombo;
public StringListParameter(Composite composite, String _name, String labels[], String values[], boolean bUseCombo)
{
this(composite, _name, COConfigurationManager.getStringParameter(_name), labels, values, bUseCombo);
}
public StringListParameter(Composite composite, String _name, String labels[], String values[])
{
this(composite, _name, COConfigurationManager.getStringParameter(_name), labels, values, true);
}
public StringListParameter(Composite composite, String _name, String defaultValue, String labels[], String values[])
{
this(composite, _name, defaultValue, labels, values, true);
}
public StringListParameter(Composite composite, String _name, String defaultValue, String labels[], String values[], final boolean bUseCombo)
{
super(_name);
name = _name;
default_value = defaultValue;
this.values = values;
useCombo = bUseCombo;
if (labels.length != values.length)
return;
String value = COConfigurationManager.getStringParameter(name, defaultValue);
int index = findIndex(value, values);
if (bUseCombo)
list = new Combo(composite, 12);
else
list = new List(composite, 2820) {
final StringListParameter this$0;
public void checkSubclass()
{
}
public Point computeSize(int wHint, int hHint, boolean changed)
{
Point pt = super.computeSize(wHint, hHint, changed);
if (hHint == -1)
{
Object ld = getLayoutData();
if ((ld instanceof GridData) && ((GridData)ld).grabExcessVerticalSpace)
pt.y = 20;
}
return pt;
}
{
this$0 = StringListParameter.this;
super(x0, x1);
}
};
for (int i = 0; i < labels.length; i++)
if (bUseCombo)
((Combo)list).add(labels[i]);
else
((List)list).add(labels[i]);
setIndex(index);
list.addListener(13, new Listener() {
final boolean val$bUseCombo;
final StringListParameter this$0;
public void handleEvent(Event e)
{
int index;
if (bUseCombo)
index = ((Combo)list).getSelectionIndex();
else
index = ((List)list).getSelectionIndex();
setIndex(index);
if (change_listeners != null)
{
for (int i = 0; i < change_listeners.size(); i++)
((ParameterChangeListener)change_listeners.get(i)).parameterChanged(StringListParameter.this, false);
}
}
{
this$0 = StringListParameter.this;
bUseCombo = flag;
super();
}
});
}
private int findIndex(String value, String values[])
{
for (int i = 0; i < values.length; i++)
if (values[i].equals(value))
return i;
return -1;
}
protected void setIndex(final int index)
{
if (index < 0)
{
COConfigurationManager.removeParameter(name);
String defValue = COConfigurationManager.getStringParameter(name);
int i = findIndex(defValue, values);
if (i >= 0)
setIndex(i);
else
Utils.execSWTThread(new AERunnable() {
final StringListParameter this$0;
public void runSupport()
{
if (list == null || list.isDisposed())
return;
if (useCombo)
((Combo)list).deselectAll();
else
((List)list).deselectAll();
}
{
this$0 = StringListParameter.this;
super();
}
});
return;
}
String selected_value = values[index];
Utils.execSWTThread(new AERunnable() {
final int val$index;
final StringListParameter this$0;
public void runSupport()
{
if (list == null || list.isDisposed())
return;
if (useCombo)
{
if (((Combo)list).getSelectionIndex() != index)
((Combo)list).select(index);
} else
if (((List)list).getSelectionIndex() != index)
((List)list).select(index);
}
{
this$0 = StringListParameter.this;
index = i;
super();
}
});
if (!COConfigurationManager.getStringParameter(name).equals(selected_value))
COConfigurationManager.setParameter(name, selected_value);
}
public void setLayoutData(Object layoutData)
{
list.setLayoutData(layoutData);
}
public Control getControl()
{
return list;
}
public String getValue()
{
return COConfigurationManager.getStringParameter(name, default_value);
}
public void setValue(Object value)
{
if (value instanceof String)
{
String s = (String)value;
setIndex(findIndex(s, values));
}
}
public Object getValueObject()
{
return getValue();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -