diff options
Diffstat (limited to 'org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/hover/CompositeInformationControlCreator.java')
-rw-r--r-- | org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/hover/CompositeInformationControlCreator.java | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/hover/CompositeInformationControlCreator.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/hover/CompositeInformationControlCreator.java deleted file mode 100644 index ddeee67056c..00000000000 --- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/hover/CompositeInformationControlCreator.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2017 Red Hat Inc. and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * - Mickael Istria (Red Hat Inc.) - *******************************************************************************/ -package org.eclipse.ui.internal.genericeditor.hover; - -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map.Entry; - -import org.eclipse.jface.text.AbstractReusableInformationControlCreator; -import org.eclipse.jface.text.DefaultInformationControl; -import org.eclipse.jface.text.IInformationControl; -import org.eclipse.jface.text.IInformationControlCreator; -import org.eclipse.jface.text.IInformationControlCreatorExtension; -import org.eclipse.jface.text.ITextHover; -import org.eclipse.jface.text.ITextHoverExtension; -import org.eclipse.swt.widgets.Shell; - -public class CompositeInformationControlCreator - implements IInformationControlCreator, IInformationControlCreatorExtension { - - private final LinkedHashMap<ITextHover, IInformationControlCreator> creators; - - public CompositeInformationControlCreator(List<ITextHover> hovers) { - this.creators = new LinkedHashMap<>(); - for (ITextHover hover : hovers) { - creators.put(hover, getInformationControlCreator(hover)); - } - } - - public CompositeInformationControlCreator(LinkedHashMap<ITextHover, IInformationControlCreator> creators) { - this.creators = creators; - } - - private static IInformationControlCreator getInformationControlCreator(ITextHover hover) { - IInformationControlCreator controlCreator = null; - if (hover instanceof ITextHoverExtension) { - controlCreator = ((ITextHoverExtension)hover).getHoverControlCreator(); - } - if (controlCreator == null) { - controlCreator = new AbstractReusableInformationControlCreator() { - @Override - protected IInformationControl doCreateInformationControl(Shell parent) { - return new DefaultInformationControl(parent, true); - } - }; - } - return controlCreator; - } - - - @Override - public boolean canReuse(IInformationControl control) { - if (control.getClass() != CompositeInformationControl.class) { - return false; - } - CompositeInformationControl other = (CompositeInformationControl)control; - if (!other.creators.equals(this.creators)) { - return false; - } - Iterator<Entry<ITextHover, IInformationControlCreator>> thisIterator = this.creators.entrySet().iterator(); - Iterator<Entry<ITextHover, IInformationControl>> otherIterator = other.controls.entrySet().iterator(); - do { - Entry<ITextHover, IInformationControlCreator> thisEntry = thisIterator.next(); - Entry<ITextHover, IInformationControl> otherEntry = otherIterator.next(); - if (!thisEntry.getKey().equals(otherEntry.getKey())) { - return false; - } - if (!(thisEntry.getValue() instanceof IInformationControlCreatorExtension)) { - return false; - } - if (!((IInformationControlCreatorExtension)thisEntry.getValue()).canReuse(otherEntry.getValue())) { - return false; - } - } while (thisIterator.hasNext()); - return true; - } - - @Override - public boolean canReplace(IInformationControlCreator creator) { - if (creator.getClass() != this.getClass()) { - return false; - } - CompositeInformationControlCreator other = (CompositeInformationControlCreator)creator; - if (other.creators.size() != this.creators.size()) { - return false; - } - Iterator<Entry<ITextHover, IInformationControlCreator>> thisIterator = this.creators.entrySet().iterator(); - Iterator<Entry<ITextHover, IInformationControlCreator>> otherIterator = other.creators.entrySet().iterator(); - do { - Entry<ITextHover, IInformationControlCreator> thisEntry = thisIterator.next(); - Entry<ITextHover, IInformationControlCreator> otherEntry = otherIterator.next(); - if (!thisEntry.getKey().equals(otherEntry.getKey())) { - return false; - } - if (!(thisEntry.getValue() instanceof IInformationControlCreatorExtension)) { - return false; - } - if (!((IInformationControlCreatorExtension)thisEntry.getValue()).canReplace(otherEntry.getValue())) { - return false; - } - } while (thisIterator.hasNext()); - return true; - } - - - @Override - public IInformationControl createInformationControl(Shell parent) { - return new CompositeInformationControl(parent, this.creators); - } - -} |