package org.netbeans.editor.ext.q;
import org.netbeans.editor.ext.*;
import javax.swing.*;
import java.awt.*;
public class QCompletion extends Completion
{
public QCompletion(ExtEditorUI extEditorUI)
{
super(extEditorUI);
}
protected CompletionView createView()
{
return new ListCompletionView(new DelegatingCellRenderer());
}
protected CompletionQuery createQuery()
{
return new QCompletionQuery();
}
public synchronized boolean substituteText(boolean flag)
{
if (getLastResult() != null)
{
int index = getView().getSelectedIndex();
if (index >= 0)
{
getLastResult().substituteText(index, flag);
}
return true;
}
else
{
return false;
}
}
public class DelegatingCellRenderer implements ListCellRenderer
{
ListCellRenderer defaultRenderer = new DefaultListCellRenderer();
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus)
{
if (value instanceof CompletionQuery.ResultItem)
{
return ((CompletionQuery.ResultItem) value).getPaintComponent(list, isSelected, cellHasFocus);
}
else
{
return defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
}
}
}
}