/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.runtime.ui.views;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.teiid.designer.runtime.spi.ITeiidTranslator;
import org.teiid.designer.runtime.ui.DqpUiConstants;
/**
* StatusBarUpdater
*
* @since 8.0
*/
public class StatusBarUpdater implements DqpUiConstants,
ISelectionChangedListener {
private IStatusLineManager statusLineManager;
/**
* Construct an instance of StatusBarUpdater.
*
*/
public StatusBarUpdater(IStatusLineManager statusLineManager) {
this.statusLineManager= statusLineManager;
}
/*
* @see ISelectionChangedListener#selectionChanged
*/
@Override
public void selectionChanged(SelectionChangedEvent event) {
ISelection selection = event.getSelection();
String statusBarMessage= formatMessage(selection);
statusLineManager.setMessage(statusBarMessage);
}
protected String formatMessage(ISelection sel) {
if (sel instanceof IStructuredSelection && !sel.isEmpty()) {
IStructuredSelection selection= (IStructuredSelection) sel;
int nElements= selection.size();
if (nElements > 1) {
return UTIL.getString("StatusBarUpdater.num_elements_selected", String.valueOf(nElements)); //$NON-NLS-1$
}
Object elem= selection.getFirstElement();
if (elem instanceof ITeiidTranslator) {
return ((ITeiidTranslator) elem).getName();
}
return elem.getClass().getName();
}
return ""; //$NON-NLS-1$
}
}