/******************************************************************************* * Copyright (c) 2010 itemis AG (http://www.itemis.eu) * 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: * Jan Koehnlein - Initial API and implementation *******************************************************************************/ package com.github.jknack.antlr4ide.ui.railroad.actions; import org.eclipse.jface.action.Action; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import com.github.jknack.antlr4ide.ui.railroad.RailroadViewPreferences; import com.google.inject.Inject; /** * @author Jan Koehnlein - Initial contribution and API */ public class LinkWithEditorAction extends Action { private RailroadViewPreferences preferences; public LinkWithEditorAction() { setText("Link with editor"); setDescription("Links this view to the editor"); setToolTipText("Links this view to the editor"); setImageDescriptor(getSharedImage(ISharedImages.IMG_ELCL_SYNCED)); setDisabledImageDescriptor(getSharedImage(ISharedImages.IMG_ELCL_SYNCED_DISABLED)); } protected ImageDescriptor getSharedImage(final String name) { return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(name); } @Inject public void setPreferences(final RailroadViewPreferences preferences) { this.preferences = preferences; setChecked(preferences.isLinkWithEditor()); } @Override public void run() { boolean newState = !preferences.isLinkWithEditor(); preferences.setLinkWithEditor(newState); setChecked(newState); } }