/*******************************************************************************
* Copyright (c) 2015 ARM Ltd. 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:
* ARM Ltd and ARM Germany GmbH - Initial API and implementation
*******************************************************************************/
package com.arm.cmsis.pack.ui.editors;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PlatformUI;
import com.arm.cmsis.pack.enums.EEvaluationResult;
import com.arm.cmsis.pack.events.RteEvent;
import com.arm.cmsis.pack.rte.IRteModelController;
import com.arm.cmsis.pack.ui.CpPlugInUI;
import com.arm.cmsis.pack.ui.CpStringsUI;
import com.arm.cmsis.pack.ui.IHelpContextIds;
import com.arm.cmsis.pack.ui.widgets.RteComponentManagerWidget;
/**
* Editor page that wraps RteManagerWidget
*
*/
public class RteComponentPage extends RteEditorPage {
protected RteComponentManagerWidget rteManagerWidget;
IAction resolveAction = null;
public RteComponentPage() {
rteManagerWidget = new RteComponentManagerWidget();
}
@Override
public void setModelController(IRteModelController model) {
super.setModelController(model);
rteManagerWidget.setModelController(model);
update();
}
@Override
public Composite getFocusWidget() {
return rteManagerWidget.getFocusWidget();
}
@Override
public void createPageContent(Composite parent) {
rteManagerWidget.createControl(parent);
headerWidget.setFocusWidget(getFocusWidget());
PlatformUI.getWorkbench().getHelpSystem().setHelp(getFocusWidget(), IHelpContextIds.COMPONENT_PAGE);
}
@Override
protected void setupHeader() {
headerWidget.setLabel(CpStringsUI.RteManagerWidget_Components, CpPlugInUI.getImage(CpPlugInUI.ICON_RTE));
resolveAction = new Action(CpStringsUI.RteComponentTreeWidget_Resolve, IAction.AS_PUSH_BUTTON) {
@Override
public void run() {
IRteModelController model = getModelController();
if (model != null) {
model.resolveComponentDependencies();
}
}
};
resolveAction.setToolTipText(CpStringsUI.RteComponentTreeWidget_ResolveComponentDependencies);
resolveAction.setImageDescriptor(CpPlugInUI.getImageDescriptor(CpPlugInUI.ICON_RESOLVE_CHECK_WARN));
resolveAction.setDisabledImageDescriptor(CpPlugInUI.getImageDescriptor(CpPlugInUI.ICON_RESOLVE_CHECK_GREY));
headerWidget.addAction(resolveAction, SWT.LEFT, true);
super.setupHeader();
}
@Override
public void handle(RteEvent event) {
switch (event.getTopic()) {
case RteEvent.COMPONENT_SELECTION_MODIFIED:
update();
return;
default:
super.handle(event);
}
}
@Override
public void update() {
if (headerWidget != null && getModelController() != null) {
bModified = getModelController().isComponentSelectionModified();
headerWidget.setModified(bModified);
EEvaluationResult res = getModelController().getEvaluationResult();
resolveAction.setEnabled(res == EEvaluationResult.SELECTABLE);
}
super.update();
}
@Override
public void refresh() {
}
}