📄 configview.java
字号:
c = ((UISWTConfigSection)section).configSectionCreate(sc);
}
sc.setContent(c);
}
String section_key = name;
if ( plugin_section ){
// if resource exists without prefix then use it as plugins don't
// need to start with the prefix
if ( !MessageText.keyExists(section_key)){
section_key = sSectionPrefix + name;
}
}else{
section_key = sSectionPrefix + name;
}
Messages.setLanguageText(treeItem, section_key);
treeItem.setData("Panel", sc);
treeItem.setData("ID", name);
treeItem.setData("ConfigSectionSWT", section);
// ConfigSectionPlugins is special because it has to handle the
// PluginConfigModel config pages
if (section instanceof ConfigSectionPlugins)
((ConfigSectionPlugins)section).initPluginSubSections();
} catch (Exception e) {
Logger.log(new LogEvent(LOGID, "ConfigSection plugin '" + name
+ "' caused an error", e));
}
}
}
initSaveButton();
TreeItem[] items = { tree.getItems()[0] };
tree.setSelection(items);
// setSelection doesn't trigger a SelectionListener, so..
showSection(items[0]);
}
private void showSection(TreeItem section) {
ScrolledComposite item = (ScrolledComposite)section.getData("Panel");
if (item != null) {
ConfigSection configSection = (ConfigSection)section.getData("ConfigSectionSWT");
if (configSection != null) {
Control previous = item.getContent();
if (previous instanceof Composite) {
configSection.configSectionDelete();
Utils.disposeComposite((Composite)previous,true);
}
Composite c;
if ( configSection instanceof ConfigSectionSWT ){
c = ((ConfigSectionSWT)configSection).configSectionCreate(item);
}else{
c = ((UISWTConfigSection)configSection).configSectionCreate(item);
}
item.setContent(c);
c.layout();
}
layoutConfigSection.topControl = item;
Composite c = (Composite)item.getContent();
item.setMinSize(c.computeSize(SWT.DEFAULT, SWT.DEFAULT));
cConfigSection.layout();
updateHeader(section);
}
}
private void updateHeader(TreeItem section) {
if (section == null)
return;
String sHeader = section.getText();
section = section.getParentItem();
while (section != null) {
sHeader = section.getText() + " : " + sHeader;
section = section.getParentItem();
}
lHeader.setText(" " + sHeader.replaceAll("&", "&&"));
}
private Composite createConfigSection(String sNameID) {
return createConfigSection(null, sNameID, -1, true);
}
private Composite createConfigSection(String sNameID, int position) {
return createConfigSection(null, sNameID, position, true);
}
public Composite createConfigSection(TreeItem treeItemParent,
String sNameID,
int position,
boolean bPrefix) {
ScrolledComposite sc = new ScrolledComposite(cConfigSection, SWT.H_SCROLL | SWT.V_SCROLL);
sc.setExpandHorizontal(true);
sc.setExpandVertical(true);
sc.setLayoutData(new GridData(GridData.FILL_BOTH));
Composite cConfigSection = new Composite(sc, SWT.NULL);
TreeItem treeItem;
if (treeItemParent == null) {
if (position >= 0)
treeItem = new TreeItem(tree, SWT.NULL, position);
else
treeItem = new TreeItem(tree, SWT.NULL);
} else {
if (position >= 0)
treeItem = new TreeItem(treeItemParent, SWT.NULL, position);
else
treeItem = new TreeItem(treeItemParent, SWT.NULL);
}
Messages.setLanguageText(treeItem, ((bPrefix) ? sSectionPrefix : "") + sNameID);
treeItem.setData("Panel", sc);
treeItem.setData("ID", sNameID);
sc.setContent(cConfigSection);
return cConfigSection;
}
public TreeItem findTreeItem(String ID) {
return findTreeItem((Tree)null, ID);
}
private TreeItem findTreeItem(Tree tree, String ID) {
if (tree == null)
tree = this.tree;
TreeItem[] items = tree.getItems();
for (int i = 0; i < items.length; i++) {
String itemID = (String)items[i].getData("ID");
if (itemID != null && itemID.equalsIgnoreCase(ID)) {
return items[i];
}
TreeItem itemFound = findTreeItem(items[i], ID);
if (itemFound != null)
return itemFound;
}
return null;
}
private TreeItem findTreeItem(TreeItem item, String ID) {
TreeItem[] subItems = item.getItems();
for (int i = 0; i < subItems.length; i++) {
String itemID = (String)subItems[i].getData("ID");
if (itemID != null && itemID.equalsIgnoreCase(ID)) {
return subItems[i];
}
TreeItem itemFound = findTreeItem(subItems[i], ID);
if (itemFound != null)
return itemFound;
}
return null;
}
private void initSaveButton() {
GridData gridData;
Button save = new Button(cConfig, SWT.PUSH);
Messages.setLanguageText(save, "ConfigView.button.save"); //$NON-NLS-1$
gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gridData.horizontalSpan = 2;
gridData.widthHint = 80;
save.setLayoutData(gridData);
save.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
COConfigurationManager.setParameter("updated", 1); //$NON-NLS-1$
COConfigurationManager.save();
for (int i = 0; i < pluginSections.size(); i++)
((ConfigSection)pluginSections.get(i)).configSectionSave();
}
});
}
/* (non-Javadoc)
* @see org.gudy.azureus2.ui.swt.IView#getComposite()
*/
public Composite getComposite() {
return cConfig;
}
public void updateLanguage() {
super.updateLanguage();
updateHeader(tree.getSelection()[0]);
// cConfig.setSize(cConfig.computeSize(SWT.DEFAULT, SWT.DEFAULT));
}
public void delete() {
MainWindow.getWindow().clearConfig();
for (int i = 0; i < pluginSections.size(); i++)
((ConfigSection)pluginSections.get(i)).configSectionDelete();
pluginSections.clear();
if(! tree.isDisposed()) {
TreeItem[] items = tree.getItems();
for (int i = 0; i < items.length; i++) {
Composite c = (Composite)items[i].getData("Panel");
Utils.disposeComposite(c);
items[i].setData("Panel", null);
items[i].setData("ConfigSectionSWT", null);
}
}
Utils.disposeComposite(cConfig);
if (headerFont != null && !headerFont.isDisposed()) {
headerFont.dispose();
headerFont = null;
}
}
public String getFullTitle() {
return MessageText.getString("ConfigView.title.full"); //$NON-NLS-1$
}
public boolean selectSection(String id) {
TreeItem ti = findTreeItem(id);
if (ti == null)
return false;
tree.setSelection(new TreeItem[] { ti });
showSection(ti);
return true;
}
public void
selectSection(
Class config_section_class )
{
TreeItem[] items = tree.getItems();
for (int i=0;i<items.length;i++){
TreeItem item = items[i];
ConfigSection section = (ConfigSection)item.getData("ConfigSectionSWT");
if ( section != null && section.getClass() == config_section_class ){
tree.setSelection( new TreeItem[]{ item });
showSection( item );
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -