/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.tableeditor.variables; import static com.google.common.collect.Lists.newArrayList; import java.util.List; import java.util.Optional; import org.eclipse.jface.viewers.ISelectionProvider; import org.robotframework.ide.eclipse.main.plugin.RedImages; import org.robotframework.ide.eclipse.main.plugin.hyperlink.detectors.ITableHyperlinksDetector; import org.robotframework.ide.eclipse.main.plugin.model.RobotElement; import org.robotframework.ide.eclipse.main.plugin.model.RobotSuiteFile; import org.robotframework.ide.eclipse.main.plugin.model.RobotSuiteFileSection; import org.robotframework.ide.eclipse.main.plugin.model.RobotVariable; import org.robotframework.ide.eclipse.main.plugin.model.RobotVariablesSection; import org.robotframework.ide.eclipse.main.plugin.tableeditor.DISectionEditorPart; import org.robotframework.ide.eclipse.main.plugin.tableeditor.ISectionFormFragment; import org.robotframework.ide.eclipse.main.plugin.tableeditor.SectionEditorPart; import org.robotframework.ide.eclipse.main.plugin.tableeditor.SelectionLayerAccessor; import org.robotframework.ide.eclipse.main.plugin.tableeditor.TreeLayerAccessor; import org.robotframework.ide.eclipse.main.plugin.tableeditor.variables.VariablesEditorPart.VariablesEditor; import org.robotframework.red.graphics.ImagesManager; public class VariablesEditorPart extends DISectionEditorPart<VariablesEditor> { public VariablesEditorPart() { super(VariablesEditor.class); setTitleImage(ImagesManager.getImage(RedImages.getRobotVariableImage())); } public static class VariablesEditor extends SectionEditorPart { private static final String CONTEXT_ID = "org.robotframework.ide.eclipse.tableeditor.variables.context"; private VariablesEditorFormFragment variablesFragment; @Override protected String getContextId() { return CONTEXT_ID; } @Override public String getId() { return "red.variables"; } @Override protected String getTitle() { return "Variables"; } @Override protected String getSectionName() { return RobotVariablesSection.SECTION_NAME; } @Override public boolean isPartFor(final RobotSuiteFileSection section) { return section instanceof RobotVariablesSection; } @Override public void revealElement(final RobotElement robotElement) { if (robotElement instanceof RobotVariable) { variablesFragment.revealVariable((RobotVariable) robotElement, false); } } @Override public void revealElementAndFocus(final RobotElement robotElement) { if (robotElement instanceof RobotVariable) { variablesFragment.revealVariable((RobotVariable) robotElement, true); } } @Override public Optional<? extends RobotSuiteFileSection> provideSection(final RobotSuiteFile suite) { return suite.findSection(RobotVariablesSection.class); } @Override protected List<? extends ISectionFormFragment> createFormFragments() { variablesFragment = new VariablesEditorFormFragment(); return newArrayList(variablesFragment); } @Override protected ISelectionProvider getSelectionProvider() { return variablesFragment.getSelectionProvider(); } @Override public SelectionLayerAccessor getSelectionLayerAccessor() { return variablesFragment.getSelectionLayerAccessor(); } @Override public Optional<TreeLayerAccessor> getTreeLayerAccessor() { return Optional.empty(); } @Override public void aboutToChangeToOtherPage() { variablesFragment.aboutToChangeToOtherPage(); } @Override public void waitForPendingJobs() { return; } @Override public List<ITableHyperlinksDetector> getDetectors() { return variablesFragment.getDetectors(); } } }