/** * Copyright (c) 2010, 2013 Darmstadt University of Technology. * 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: * Marcel Bruch - initial API and implementation. */ package org.eclipse.recommenders.internal.completion.rcp.tips; import static org.eclipse.jface.viewers.StyledString.DECORATIONS_STYLER; import java.util.concurrent.TimeUnit; import javax.inject.Inject; import org.eclipse.jface.text.IInformationControl; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.viewers.StyledString; import org.eclipse.recommenders.completion.rcp.tips.AbstractCompletionTipProposal; import org.eclipse.recommenders.completion.rcp.tips.ConfigureContentAssistInformationControl; import org.eclipse.recommenders.internal.completion.rcp.l10n.Messages; import org.eclipse.recommenders.rcp.SharedImages; import org.eclipse.recommenders.rcp.SharedImages.Images; import org.eclipse.recommenders.rcp.utils.Dialogs; import org.eclipse.swt.widgets.Shell; @SuppressWarnings("restriction") public class DiscoveryCompletionProposal extends AbstractCompletionTipProposal { private static final String DISCOVERY_URL = "https://www.eclipse.org/downloads/download.php?r=1&file=/recommenders/discovery/2.x/directories/completion.xml"; //$NON-NLS-1$ private static final int TIME_DELAY_IN_MINUTES = 30; @Inject public DiscoveryCompletionProposal(SharedImages images) { setImage(images.getImage(Images.OBJ_LIGHTBULB)); setStyledDisplayString(new StyledString(Messages.PROPOSAL_LABEL_DISCOVER_EXTENSIONS, DECORATIONS_STYLER)); suppressProposal(TIME_DELAY_IN_MINUTES, TimeUnit.MINUTES); } @Override public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) { Dialogs.newExtensionsDiscoveryDialog(DISCOVERY_URL).open(); } @Override protected IInformationControl createInformationControl(Shell parent, String statusLineText) { return new ConfigureContentAssistInformationControl(parent, statusLineText, Messages.PROPOSAL_TOOLTIP_DISCOVER_EXTENSIONS, null); } }