Eclipse Forms - ExpandableComposite - PullRequest
       4

Eclipse Forms - ExpandableComposite

0 голосов
/ 15 декабря 2011

У меня есть следующий код:

        ExpandableComposite composite = toolkit.createExpandableComposite(sectionClient, 
            ExpandableComposite.CLIENT_INDENT | ExpandableComposite.TREE_NODE |
            ExpandableComposite.EXPANDED | SWT.FILL);
        composite.setText("Task Updates...");

        HyperlinkGroup group = new HyperlinkGroup(composite.getDisplay());

        Integer numTasks = acts.get(i).getTaskUpdates().size();
        for(int j = 0; j < numTasks; j++) {
            ImageHyperlink imageLink = toolkit.createImageHyperlink(composite, SWT.NONE);
            imageLink.setText("Task update link");
            imageLink.setImage(Activator.getImageDescriptor("icons/task.ico").createImage());
            imageLink.addHyperlinkListener(new HyperlinkAdapter() {
                public void linkActivated(HyperlinkEvent e) {
                    System.out.println("Image link activated.");
                }
            });
            group.add(imageLink);
            composite.setClient(imageLink);

        }

Когда я использую ExpandableComposite только с одним элементом, таким как Label или Hyperlink, он работает просто отлично. Однако, когда я пытаюсь отобразить несколько элементов в ExpandableComposite, он ничего не показывает и не выдает никаких исключений. Я пробовал пройти курс обучения по http://www.eclipse.org/articles/Article-Forms/article.html,, но, похоже, ничего не помогло.

1 Ответ

1 голос
/ 15 декабря 2011

У ExpandableComposite может быть только один клиент.Вот почему ваш код не работает с несколькими гиперссылками.

Если вы хотите разместить более одного ImageHyperlink на вашем ExpandableComposite, вы должны создать еще один Composite, который является клиентом ExpandableCompositeи поместите гиперссылки на этот композит.

...