use of org.eclipse.jface.viewers.ViewerComparator in project yamcs-studio by yamcs.
the class SwitchProcessorDialog method createDialogArea.
@Override
protected Control createDialogArea(Composite parent) {
var area = (Composite) super.createDialogArea(parent);
var composite = new Composite(area, SWT.NONE);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
composite.setLayout(new GridLayout());
var tableWrapper = new Composite(composite, SWT.NONE);
var tcl = new TableColumnLayout();
tableWrapper.setLayoutData(new GridData(GridData.FILL_BOTH));
tableWrapper.setLayout(tcl);
processorsTable = new TableViewer(tableWrapper, SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
processorsTable.getTable().setHeaderVisible(true);
processorsTable.getTable().setLinesVisible(true);
var instanceColumn = new TableViewerColumn(processorsTable, SWT.NONE);
instanceColumn.getColumn().setText("Instance");
instanceColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
var info = (ProcessorInfo) element;
return info.getInstance();
}
});
tcl.setColumnData(instanceColumn.getColumn(), new ColumnPixelData(100));
var nameColumn = new TableViewerColumn(processorsTable, SWT.NONE);
nameColumn.getColumn().setText("Processor");
nameColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
var info = (ProcessorInfo) element;
return info.getName();
}
});
tcl.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100));
var typeColumn = new TableViewerColumn(processorsTable, SWT.NONE);
typeColumn.getColumn().setText("Type");
typeColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
var info = (ProcessorInfo) element;
return info.getType();
}
});
tcl.setColumnData(typeColumn.getColumn(), new ColumnPixelData(100));
processorsTable.setContentProvider(ArrayContentProvider.getInstance());
processorsTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
processorsTable.setComparator(new ViewerComparator() {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
if (e1 == null || e2 == null) {
return 0;
}
var p1 = (ProcessorInfo) e1;
var p2 = (ProcessorInfo) e2;
var c = p1.getInstance().compareTo(p2.getInstance());
return (c != 0) ? c : p1.getName().compareTo(p2.getName());
}
});
processorsTable.addSelectionChangedListener(event -> {
var okButton = getButton(IDialogConstants.OK_ID);
okButton.setEnabled(!event.getSelection().isEmpty());
});
var client = YamcsPlugin.getYamcsClient();
var filter = new InstanceFilter();
filter.setState(InstanceState.RUNNING);
client.listInstances(filter).whenComplete((response, exc) -> {
parent.getDisplay().asyncExec(() -> {
if (exc == null) {
var processors = new ArrayList<ProcessorInfo>();
for (var instance : response.getInstancesList()) {
processors.addAll(instance.getProcessorsList());
}
processorsTable.setInput(processors);
}
});
});
return composite;
}
use of org.eclipse.jface.viewers.ViewerComparator in project yamcs-studio by yamcs.
the class PredefinedFontsFieldEditor method createTableControl.
private void createTableControl(Composite parent) {
var tableWrapper = new Composite(parent, SWT.NONE);
tableWrapper.setLayoutData(new GridData(GridData.FILL_BOTH));
var tcl = new TableColumnLayout();
tableWrapper.setLayout(tcl);
tableViewer = new TableViewer(tableWrapper, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
tableViewer.setContentProvider(ArrayContentProvider.getInstance());
tableViewer.getTable().setHeaderVisible(true);
tableViewer.setComparator(new ViewerComparator() {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
var f1 = (OPIFont) e1;
var f2 = (OPIFont) e2;
return f1.getFontMacroName().compareToIgnoreCase(f2.getFontMacroName());
}
});
var textColumn = new TableViewerColumn(tableViewer, SWT.NONE);
textColumn.getColumn().setText("Name");
textColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
var font = (OPIFont) element;
return font.getFontMacroName();
}
});
tcl.setColumnData(textColumn.getColumn(), new ColumnWeightData(100, true));
var descColumn = new TableViewerColumn(tableViewer, SWT.NONE);
descColumn.getColumn().setText("Font");
descColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
var font = (OPIFont) element;
return StringConverter.asString(font.getRawFontData());
}
});
tcl.setColumnData(descColumn.getColumn(), new ColumnWeightData(200, true));
tableViewer.getTable().addListener(SWT.Selection, evt -> {
updatePreviewFont();
updateButtonStatus();
});
tableViewer.getTable().addListener(SWT.MouseDoubleClick, e -> {
var item = tableViewer.getTable().getItem(new Point(e.x, e.y));
if (item == null) {
return;
}
var bounds = item.getBounds();
var isClickOnCheckbox = e.x < bounds.x;
if (isClickOnCheckbox) {
return;
}
var selectedFont = getSelectedFont();
editFont(selectedFont);
updatePreviewFont();
updateButtonStatus();
});
}
use of org.eclipse.jface.viewers.ViewerComparator in project yamcs-studio by yamcs.
the class PredefinedColorsFieldEditor method createTableControl.
private void createTableControl(Composite parent) {
var tableWrapper = new Composite(parent, SWT.NONE);
tableWrapper.setLayoutData(new GridData(GridData.FILL_BOTH));
var tcl = new TableColumnLayout();
tableWrapper.setLayout(tcl);
tableViewer = new TableViewer(tableWrapper, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
tableViewer.setContentProvider(ArrayContentProvider.getInstance());
tableViewer.setComparator(new ViewerComparator() {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
var c1 = (NamedColor) e1;
var c2 = (NamedColor) e2;
return c1.name.compareToIgnoreCase(c2.name);
}
});
var colorColumn = new TableViewerColumn(tableViewer, SWT.NONE);
colorColumn.setLabelProvider(new ColorLabelProvider() {
@Override
public Color getColor(Object element) {
var color = (NamedColor) element;
return colorCache.computeIfAbsent(color.rgb, resourceManager::createColor);
}
@Override
public Color getBorderColor(Object element) {
return parent.getDisplay().getSystemColor(SWT.COLOR_BLACK);
}
});
tcl.setColumnData(colorColumn.getColumn(), new ColumnWeightData(50, 50, false));
var textColumn = new TableViewerColumn(tableViewer, SWT.NONE);
textColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
var color = (NamedColor) element;
return color.name;
}
});
tcl.setColumnData(textColumn.getColumn(), new ColumnWeightData(200, 200, true));
tableViewer.getTable().addListener(SWT.Selection, evt -> updateButtonStatus());
tableViewer.getTable().addListener(SWT.MouseDoubleClick, e -> {
var item = tableViewer.getTable().getItem(new Point(e.x, e.y));
if (item == null) {
return;
}
var bounds = item.getBounds();
var isClickOnCheckbox = e.x < bounds.x;
if (isClickOnCheckbox) {
return;
}
var selectedRule = getSelectedColor();
editColor(selectedRule);
updateButtonStatus();
});
}
use of org.eclipse.jface.viewers.ViewerComparator in project egit by eclipse.
the class BranchSelectionDialog method createCustomArea.
@Override
protected Control createCustomArea(Composite parent) {
Composite area = new Composite(parent, SWT.NONE);
GridDataFactory.fillDefaults().grab(true, true).span(2, 1).applyTo(area);
area.setLayout(new GridLayout(1, false));
if (multiMode) {
fTree = new FilteredCheckboxTree(area, null, SWT.NONE, new PatternFilter()) {
/*
* Overridden to check page when refreshing is done.
*/
@Override
protected WorkbenchJob doCreateRefreshJob() {
WorkbenchJob refreshJob = super.doCreateRefreshJob();
refreshJob.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()) {
getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
checkPage();
}
});
}
}
});
return refreshJob;
}
};
CachedCheckboxTreeViewer viewer = fTree.getCheckboxTreeViewer();
GridDataFactory.fillDefaults().grab(true, true).applyTo(fTree);
viewer.setContentProvider(new ITreeContentProvider() {
@Override
public void inputChanged(Viewer actViewer, Object oldInput, Object newInput) {
// nothing
}
@Override
public void dispose() {
// nothing
}
@Override
public boolean hasChildren(Object element) {
return false;
}
@Override
public Object getParent(Object element) {
return null;
}
@Override
public Object[] getElements(Object inputElement) {
return ((List) inputElement).toArray();
}
@Override
public Object[] getChildren(Object parentElement) {
return null;
}
});
viewer.addCheckStateListener(new ICheckStateListener() {
@Override
public void checkStateChanged(CheckStateChangedEvent event) {
checkPage();
}
});
viewer.setLabelProvider(new GitLabelProvider());
viewer.setComparator(new ViewerComparator(CommonUtils.STRING_ASCENDING_COMPARATOR));
viewer.setInput(nodes);
preselectBranchMultiMode(nodes, fTree);
} else {
branchesList = new TableViewer(area, this.style | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
GridDataFactory.fillDefaults().grab(true, true).applyTo(branchesList.getControl());
branchesList.setContentProvider(ArrayContentProvider.getInstance());
branchesList.setLabelProvider(new GitLabelProvider());
branchesList.setComparator(new ViewerComparator(CommonUtils.STRING_ASCENDING_COMPARATOR));
branchesList.setInput(nodes);
preselectBranchSingleMode(nodes, branchesList);
branchesList.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
checkPage();
}
});
branchesList.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
buttonPressed(OK);
}
});
}
return area;
}
use of org.eclipse.jface.viewers.ViewerComparator in project egit by eclipse.
the class AbstractBranchSelectionDialog method createDialogArea.
@Override
protected final Composite createDialogArea(Composite base) {
Composite parent = (Composite) super.createDialogArea(base);
Composite composite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
composite.setLayout(layout);
composite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
int selectionModel = -1;
if ((settings & ALLOW_MULTISELECTION) != 0)
selectionModel = SWT.MULTI;
else
selectionModel = SWT.SINGLE;
FilteredTree tree = new FilteredTree(composite, selectionModel | SWT.BORDER, new PatternFilter(), true);
branchTree = tree.getViewer();
branchTree.setUseHashlookup(true);
branchTree.setLabelProvider(new RepositoriesViewStyledCellLabelProvider());
branchTree.setContentProvider(new RepositoriesViewContentProvider());
ColumnViewerToolTipSupport.enableFor(branchTree);
GridDataFactory.fillDefaults().grab(true, true).hint(500, 300).applyTo(tree);
branchTree.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
String refName = refNameFromDialog();
refNameSelected(refName);
}
});
// double-click support
branchTree.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
RepositoryTreeNode node = (RepositoryTreeNode) ((IStructuredSelection) branchTree.getSelection()).getFirstElement();
if (node == null)
return;
final RepositoryTreeNodeType type = node.getType();
if (type != RepositoryTreeNodeType.REF && type != RepositoryTreeNodeType.TAG && type != RepositoryTreeNodeType.ADDITIONALREF)
branchTree.setExpandedState(node, !branchTree.getExpandedState(node));
else if (isOkButtonEnabled())
buttonPressed(OK);
}
});
branchTree.setComparator(new ViewerComparator(STRING_ASCENDING_COMPARATOR));
createCustomArea(composite);
setTitle(getTitle());
setMessage(getMessageText());
getShell().setText(getWindowTitle());
applyDialogFont(composite);
return composite;
}
Aggregations