private void initialize(Composite composite) { panel = new Composite(composite, SWT.NULL); panel.setLayout(new GridLayout(2, false)); legend_panel_sc = new ScrolledComposite(panel, SWT.V_SCROLL); legend_panel_sc.setExpandHorizontal(true); legend_panel_sc.setExpandVertical(true); GridLayout layout = new GridLayout(); layout.horizontalSpacing = 0; layout.verticalSpacing = 0; layout.marginHeight = 0; layout.marginWidth = 0; legend_panel_sc.setLayout(layout); GridData gridData = new GridData(GridData.FILL_VERTICAL); legend_panel_sc.setLayoutData(gridData); legend_panel = new Group(legend_panel_sc, SWT.NULL); legend_panel.setText(MessageText.getString("label.tags")); legend_panel.setLayout(new GridLayout()); legend_panel_sc.setContent(legend_panel); legend_panel_sc.addControlListener( new ControlAdapter() { public void controlResized(ControlEvent e) { legend_panel_sc.setMinSize(legend_panel.computeSize(SWT.DEFAULT, SWT.DEFAULT)); } }); speed_panel = new Composite(panel, SWT.NULL); speed_panel.setLayout(new GridLayout()); gridData = new GridData(GridData.FILL_BOTH); speed_panel.setLayoutData(gridData); build(); TagManager tm = TagManagerFactory.getTagManager(); tm.addTagManagerListener(this, false); for (TagType tt : tm.getTagTypes()) { tt.addTagTypeListener(this, false); } panel.addListener( SWT.Activate, new Listener() { public void handleEvent(Event event) { refresh(true); } }); }
private void rebuild(TagType tag_type, boolean added) { if (panel == null || panel.isDisposed()) { tag_type.getTagManager().removeTagManagerListener(this); return; } if (added) { tag_type.addTagTypeListener(this, false); } rebuild(); }