private void loadUserEntry(Node node) { EngineDescriptor edesc = new EngineDescriptor(this); String id = getAttribute(node, ATT_ID); String engineTypeId = getAttribute(node, ATT_ENGINE_TYPE_ID); EngineTypeDescriptor etdesc = findEngineType(engineTypeId); String label = getAttribute(node, ATT_LABEL); String desc = getDescription(node); if (etdesc == null) return; edesc.setEngineType(etdesc); edesc.setUserDefined(true); edesc.setId(id); edesc.setLabel(label); edesc.setDescription(desc); descriptors.add(edesc); }
public void createPage() { IPreferencePage page = desc.createRootPage(set.getName()); setPage(page); page.setTitle(desc.getLabel()); page.setImageDescriptor(desc.getImageDescriptor()); page.setDescription(desc.getDescription()); } }
private void save(PrintWriter writer, EngineDescriptor desc) { String indent = " "; //$NON-NLS-1$ String attIndent = indent + indent; writer.print(indent); writer.println("<engine "); //$NON-NLS-1$ saveAttribute(writer, attIndent, "id", desc.getId()); //$NON-NLS-1$ saveAttribute(writer, attIndent, ATT_ENGINE_TYPE_ID, desc.getEngineTypeId()); saveAttribute(writer, attIndent, ATT_LABEL, desc.getLabel()); writer.println(">"); //$NON-NLS-1$ saveDescription(writer, indent+indent, desc.getDescription()); writer.print(indent); writer.println("</engine>"); //$NON-NLS-1$ }
public EnginePreferenceNode(EngineDescriptor desc) { super(desc.getId(), desc.getLabel(), desc.getImageDescriptor(), null); this.desc = desc; } public EngineDescriptor getDescriptor() {
public ISearchScope createSearchScope(IPreferenceStore store) { return etdesc.createSearchScope(store, getId(), getParameters()); }
for (int i = 0; i < engineDescriptors.length; i++) { final EngineDescriptor ed = engineDescriptors[i]; if (set.getEngineEnabled(ed) && ed.getEngine() != null) { ISearchScope scope = ed.createSearchScope(set.getPreferenceStore()); FederatedSearchEntry entry = new FederatedSearchEntry(ed.getId(), ed.getLabel(), scope, ed .getEngine(), new ISearchEngineResultCollector() {
private void doNew() { NewEngineWizard wizard = new NewEngineWizard(descManager.getEngineTypes()); WizardDialog dialog = new WizardDialog(getShell(), wizard); dialog.create(); dialog.getShell().setSize(400, 500); if (dialog.open()==WizardDialog.OK) { EngineTypeDescriptor etdesc = wizard.getSelectedEngineType(); EngineDescriptor desc = new EngineDescriptor(descManager); desc.setEngineType(etdesc); desc.setUserDefined(true); desc.setId(descManager.computeNewId(etdesc.getId())); ScopePreferenceManager mng = (ScopePreferenceManager)getPreferenceManager(); IPreferenceNode node = mng.addNode(desc); getTreeViewer().refresh(); getTreeViewer().setSelection(new StructuredSelection(node)); scheduleOperation(NEW_ID, desc); } }
private void loadFromExtensionRegistry() { IConfigurationElement[] elements = Platform.getExtensionRegistry() .getConfigurationElementsFor(ENGINE_EXP_ID); Hashtable engineTypes = loadEngineTypes(elements); for (int i = 0; i < elements.length; i++) { IConfigurationElement element = elements[i]; if (element.getName().equals(TAG_ENGINE)) { EngineDescriptor desc = new EngineDescriptor(element); String engineId = desc.getEngineTypeId(); if (engineId != null) { EngineTypeDescriptor etdesc = (EngineTypeDescriptor) engineTypes .get(engineId); if (etdesc != null) { desc.setEngineType(etdesc); descriptors.add(desc); } } } } }
public String computeNewId(String typeId) { ArrayList used = new ArrayList(); for (int i=0; i<descriptors.size(); i++) { EngineDescriptor ed = (EngineDescriptor)descriptors.get(i); if (!ed.isUserDefined()) continue; String edTypeId = ed.getEngineTypeId(); if (typeId.equals(edTypeId)) { String edId = ed.getId(); int loc = edId.lastIndexOf('.'); if (loc!= -1) { String cvalue = edId.substring(loc+1); int ivalue = Integer.parseInt(cvalue); used.add(new Integer(ivalue)); } } } for (int i=1; i<Integer.MAX_VALUE; i++) { if (!isUsed(i, used)) { return typeId+"."+"user."+i; //$NON-NLS-1$ //$NON-NLS-2$ } } return typeId; }
private EngineDescriptor loadEngine(final EngineDescriptor edesc, Composite container, FormToolkit toolkit) { Label ilabel = toolkit.createLabel(container, null); ilabel.setImage(edesc.getIconImage()); ilabel.setData(edesc); final Button master = toolkit.createButton(container, edesc.getLabel(), SWT.CHECK); master.setData(edesc); master.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { scopeSetManager.getActiveSet().setEngineEnabled(edesc, master.getSelection()); } }); String desc = edesc.getDescription(); if (desc != null) { Label spacer = toolkit.createLabel(container, null); spacer.setData(edesc); Label dlabel = toolkit.createLabel(container, desc, SWT.WRAP); dlabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); dlabel.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); dlabel.setMenu(container.getMenu()); dlabel.setData(edesc); } return edesc; }
public boolean getEngineEnabled(EngineDescriptor desc) { IPreferenceStore store = getPreferenceStore(); String key = getMasterKey(desc.getId()); if (store.contains(key)) return store.getBoolean(key); store.setValue(key, desc.isEnabled()); return desc.isEnabled(); } public void setEngineEnabled(EngineDescriptor desc, boolean value) {
private void updateEngine(EngineDescriptor desc) { Control[] children = ((Composite) scopeSection.getClient()).getChildren(); boolean reflowNeeded = false; for (int i = 0; i < children.length; i++) { Control child = children[i]; EngineDescriptor ed = (EngineDescriptor) child.getData(); if (ed == desc) { Button b = (Button) children[i + 1]; b.setText(desc.getLabel()); Label d = (Label) children[i + 3]; d.setText(desc.getDescription()); d.getParent().layout(); reflowNeeded = true; break; } } if (reflowNeeded) parent.reflow(); }
searchResults.setImage(ISharedImages.IMG_OBJS_ERROR_TSK, PlatformUI.getWorkbench().getSharedImages() .getImage(ISharedImages.IMG_OBJS_ERROR_TSK)); searchResults.setImage(desc.getId(), desc.getIconImage()); searchResults.setImage(KEY_PREFIX_GRAYED + desc.getId(), getGrayedImage(desc.getIconImage())); searchResults.addHyperlinkListener(new IHyperlinkListener() {
public EngineDescriptor findEngine(String engineId) { for (int i=0; i<descriptors.size(); i++) { EngineDescriptor desc = (EngineDescriptor)descriptors.get(i); if (desc.getId().equals(engineId)) return desc; } return null; }
private EngineDescriptor findLocalHelp(ArrayList eds) { for (int i=0; i<eds.size(); i++) { EngineDescriptor ed = (EngineDescriptor)eds.get(i); if (ed.getEngineTypeId().equals(IHelpUIConstants.INTERNAL_HELP_ID)) return ed; } return null; }
public void showURL(String url, boolean replace) { if (url == null) return; if (url.startsWith("nw:")) { //$NON-NLS-1$ replace = false; url = url.substring(3); } else if (url.startsWith("open:")) { //$NON-NLS-1$ int col = url.indexOf(':'); int qloc = url.indexOf('?'); String engineId = url.substring(col+1, qloc); EngineDescriptor desc = getEngineManager().findEngine(engineId); if (desc==null) return; HashMap args = new HashMap(); HelpURLConnection.parseQuery(url.substring(qloc+1), args); ((ISearchEngine2)desc.getEngine()).open((String)args.get("id")); //$NON-NLS-1$ return; } if (replace) { if (openInternalBrowser(url)) return; } showExternalURL(url); }
private void updateSectionTitle(int size) { if (errorStatus != null) { Label label = part.getToolkit().createLabel(section, null); label.setImage(PlatformUI.getWorkbench().getSharedImages().getImage( ISharedImages.IMG_OBJS_ERROR_TSK)); section.setTextClient(label); section.setText(Messages.EngineResultSection_sectionTitle_error); } else { section.setTextClient(null); } if (size == 1) section.setText(NLS.bind(Messages.EngineResultSection_sectionTitle_hit, desc.getLabel(), "" //$NON-NLS-1$ + hits.size())); else if (size <= HITS_PER_PAGE) section.setText(NLS.bind(Messages.EngineResultSection_sectionTitle_hits, desc.getLabel(), "" + hits.size())); //$NON-NLS-1$ else { int from = (resultOffset + 1); int to = (resultOffset + HITS_PER_PAGE); to = Math.min(to, size); section.setText(NLS.bind(Messages.EngineResultSection_sectionTitle_hitsRange, new String[] { desc.getLabel(), "" + from, "" + to, "" + size })); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } }
public void setEngineEnabled(EngineDescriptor desc, boolean value) { IPreferenceStore store = getPreferenceStore(); String key = getMasterKey(desc.getId()); store.setValue(key, value); } public static String getMasterKey(String id) {
private ISearchEngineResult[] getResults() { ArrayList list = hits; if (desc.getEngineTypeId().equals(IHelpUIConstants.INTERNAL_HELP_ID)) { if (part.parent.isFilteredByRoles()) { list = new ArrayList(); for (int i = 0; i < hits.size(); i++) { ISearchEngineResult hit = (ISearchEngineResult) hits.get(i); if (HelpBasePlugin.getActivitySupport().isEnabled(hit.getHref())) list.add(hit); } } } ISearchEngineResult[] results = (ISearchEngineResult[]) list.toArray(new ISearchEngineResult[list .size()]); if (part.getShowCategories()) sorter.sort(null, results); return results; }
int bindent = part.getShowCategories() && cat != null ? 5 : 0; buff.append("<li indent=\"" + indent + "\" bindent=\"" + bindent + "\" style=\"image\" value=\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ String imageId = desc.getId(); boolean isPotentialHit = (hit instanceof SearchHit && ((SearchHit)hit).isPotentialHit()); if (hit instanceof ISearchEngineResult2) { ISearchEngineResult2 hit2 = (ISearchEngineResult2)hit; if (((ISearchEngineResult2)hit).canOpen()) { href = "open:"+desc.getId()+"?id="+hit2.getId(); //$NON-NLS-1$ //$NON-NLS-2$