Я хочу реализовать дерево с проверяемыми корневыми узлами и некоторыми параметрами (собственно, параметры в этом случае не имеют значения) внутри.Итак, я создаю дерево, затем помещаю туда 2 столбца, и после этого размещаю TreeItem.Затем мне нужно разместить TreeEditor с кнопкой-флажком Кнопка button = новая кнопка (tree, SWT.CHECK);
Возникла проблема: если текст в TreeItem не задан(или равно ""), тогда при развертывании элемента дерева-узла маленький прямоугольник будет показан и не будет скрыт.Если текст установлен в TreeItem, то вокруг текста в TreeItem будет отображаться прямоугольник, но он будет скрываться, если мышь выходит из TreeItem.Есть ли способ не показывать этот прямоугольник?
Пустая текстовая область http://s15.postimage.org/8u20pkezv/checkbox.png
Вот источники:
Tree tree = new Tree(composite_1, SWT.NONE);
tree.setHeaderVisible(true);
tree.setLinesVisible(true);
TreeColumn trclmnProperty = new TreeColumn(tree, SWT.NONE);
trclmnProperty.setWidth(100);
trclmnProperty.setText(Messages.AppWindow_trclmnProperty_text);
TreeColumn trclmnValue = new TreeColumn(tree, SWT.NONE);
trclmnValue.setWidth(100);
trclmnValue.setText(Messages.AppWindow_trclmnValue_text);
// Reading contents of a tree
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
File f = new File("ftplist.xml");
org.w3c.dom.Document doc = builder.parse(f);
NodeList ftpList = doc.getElementsByTagName("ftp");
for (int i = 0; i < ftpList.getLength(); i++) {
NodeList nodeList = ((Element) ftpList.item(i)).getElementsByTagName("ftpName");
TreeItem treeItemRootNode = new TreeItem(tree, SWT.NONE);
TreeEditor treeRootNodeEditor = new TreeEditor(tree);
final Button button = new Button(tree, SWT.CHECK);
button.setText(nodeList.item(0).getTextContent());
nodeList = ((Element) ftpList.item(0)).getElementsByTagName("ftpEnabled");
button.setSelection(nodeList.item(0).getTextContent().equalsIgnoreCase("true"));
button.pack();
treeRootNodeEditor.minimumWidth = button.getSize().x;
treeRootNodeEditor.horizontalAlignment = SWT.LEFT;
treeRootNodeEditor.setEditor(button, treeItemRootNode, 0);
nodeList = ((Element) ftpList.item(0)).getElementsByTagName("ftpHost");
TreeItem treeItemFtpHost = new TreeItem(treeItemRootNode, SWT.NONE);
treeItemFtpHost.setText(new String[] { "Host", nodeList.item(0).getTextContent() });
}
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ftplist.xml - это простофайл конфигурации, содержит только настройки ftp, такие как хост, порт и т. д.
ftplist.xml:
<?xml version="1.0"?>
<ftps>
<ftp>
<ftpName>SuperFtp</ftpName>
<ftpEnabled>true</ftpEnabled>
<ftpHost>ftp.com</ftpHost>
<ftpPort>21</ftpPort>
<ftpLogin>Login</ftpLogin>
<ftpPassword>Pass</ftpPassword>
<ftpUsePassiveMode>true</ftpUsePassiveMode>
<ftpRemoteDir>/</ftpRemoteDir>
<localSyncDir>C:/</localSyncDir>
</ftp>
<ftp>
<ftpName>SuperFtp2</ftpName>
<ftpEnabled>true</ftpEnabled>
<ftpHost>ftp.com</ftpHost>
<ftpPort>21</ftpPort>
<ftpLogin>Login</ftpLogin>
<ftpPassword>Pass</ftpPassword>
<ftpUsePassiveMode>true</ftpUsePassiveMode>
<ftpRemoteDir>/</ftpRemoteDir>
<localSyncDir>C:/</localSyncDir>
</ftp>
<ftps>