/*
* Copyright 2008-2012 Amazon Technologies, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://aws.amazon.com/apache2.0
*
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
* OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and
* limitations under the License.
*/
package com.amazonaws.eclipse.ec2.ui.amis;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.part.ViewPart;
import com.amazonaws.eclipse.core.ui.IRefreshable;
/**
* View for working with AMIs.
*/
public class AmiBrowserView extends ViewPart implements IRefreshable {
/** AMI selection table displaying the available AMIs */
private FilteredAmiSelectionTable filteredAmiSelectionTable;
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
@Override
public void createPartControl(final Composite parent) {
parent.setLayout(new FillLayout());
filteredAmiSelectionTable = new FilteredAmiSelectionTable(parent);
filteredAmiSelectionTable.setLayoutData(new GridData(GridData.FILL_BOTH));
contributeToActionBars();
}
/*
* @see org.eclipse.ui.part.WorkbenchPart#dispose()
*/
@Override
public void dispose() {
if (filteredAmiSelectionTable != null)
filteredAmiSelectionTable.dispose();
super.dispose();
}
/**
* Adds a refresh button to this view's toolbar.
*/
private void contributeToActionBars() {
IActionBars bars = getViewSite().getActionBars();
IToolBarManager manager = bars.getToolBarManager();
manager.add(filteredAmiSelectionTable.getAmiSelectionTable().getRefreshAction());
manager.add(filteredAmiSelectionTable.getAmiSelectionTable().getAmiFilterDropDownAction());
manager.add(filteredAmiSelectionTable.getAmiSelectionTable().getPlatformFilterDropDownAction());
}
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#setFocus()
*/
@Override
public void setFocus() {
filteredAmiSelectionTable.setFocus();
}
/* (non-Javadoc)
* @see com.amazonaws.eclipse.ec2.ui.IRefreshable#refreshData()
*/
public void refreshData() {
if (filteredAmiSelectionTable != null) {
filteredAmiSelectionTable.refreshData();
}
}
}