/** * Creates the filter area. * * @param container the container to add the filter area */ private Control createFilterArea(Composite container) { FormData fd = new FormData(); // group composite containing the filter settings Group filterArea = new Group(container, SWT.NULL); filterArea.setText(Messages.CheckstylePropertyPage_titleFilterGroup); filterArea.setLayout(new FormLayout()); this.mFilterList = CheckboxTableViewer.newCheckList(filterArea, SWT.BORDER); this.mBtnEditFilter = new Button(filterArea, SWT.PUSH); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(0, 3); fd.right = new FormAttachment(this.mBtnEditFilter, -3, SWT.LEFT); fd.bottom = new FormAttachment(60, -3); this.mFilterList.getTable().setLayoutData(fd); this.mFilterList.setLabelProvider( new LabelProvider() { public String getText(Object element) { StringBuffer buf = new StringBuffer(); if (element instanceof IFilter) { IFilter filter = (IFilter) element; buf.append(filter.getName()); if (filter.getPresentableFilterData() != null) { buf.append(": ").append(filter.getPresentableFilterData()); // $NON-NLS-1$ } } else { buf.append(super.getText(element)); } return buf.toString(); } }); this.mFilterList.setContentProvider(new ArrayContentProvider()); this.mFilterList.addSelectionChangedListener(this.mPageController); this.mFilterList.addDoubleClickListener(this.mPageController); this.mFilterList.addCheckStateListener(this.mPageController); this.mBtnEditFilter.setText(Messages.CheckstylePropertyPage_btnChangeFilter); this.mBtnEditFilter.addSelectionListener(this.mPageController); fd = new FormData(); fd.top = new FormAttachment(0, 3); fd.right = new FormAttachment(100, -3); this.mBtnEditFilter.setLayoutData(fd); // Description Label lblDesc = new Label(filterArea, SWT.LEFT); lblDesc.setText(Messages.CheckstylePropertyPage_lblDescription); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(this.mFilterList.getTable(), 3, SWT.BOTTOM); fd.right = new FormAttachment(100, -3); lblDesc.setLayoutData(fd); this.mTxtFilterDescription = new Text( filterArea, SWT.LEFT | SWT.WRAP | SWT.MULTI | SWT.READ_ONLY | SWT.BORDER | SWT.VERTICAL); fd = new FormData(); fd.left = new FormAttachment(0, 3); fd.top = new FormAttachment(lblDesc, 3, SWT.BOTTOM); fd.right = new FormAttachment(100, -3); fd.bottom = new FormAttachment(100, -3); this.mTxtFilterDescription.setLayoutData(fd); // intialize filter list List<IFilter> filterDefs = mProjectConfig.getFilters(); this.mFilterList.setInput(filterDefs); // set the checked state for (int i = 0; i < filterDefs.size(); i++) { IFilter filter = filterDefs.get(i); this.mFilterList.setChecked(filter, filter.isEnabled()); } // set the readonly state for (int i = 0; i < filterDefs.size(); i++) { IFilter filter = filterDefs.get(i); this.mFilterList.setGrayed(filter, filter.isReadonly()); } this.mBtnEditFilter.setEnabled(false); return filterArea; }