Issue #29 Fixed issue with radar menu dispose
Former-commit-id:8f0fbbf4e8
[formerly 279c4037f9f6fbefe53bc12cbf82017daa3399d2] Former-commit-id:f131667c9e
This commit is contained in:
parent
eead5c9a7e
commit
56897ee0df
8 changed files with 18 additions and 251 deletions
|
@ -1,153 +0,0 @@
|
||||||
/**
|
|
||||||
* This software was developed and / or modified by Raytheon Company,
|
|
||||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
|
||||||
*
|
|
||||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
|
||||||
* This software product contains export-restricted data whose
|
|
||||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
|
||||||
* to non-U.S. persons whether in the United States or abroad requires
|
|
||||||
* an export license or other authorization.
|
|
||||||
*
|
|
||||||
* Contractor Name: Raytheon Company
|
|
||||||
* Contractor Address: 6825 Pine Street, Suite 340
|
|
||||||
* Mail Stop B8
|
|
||||||
* Omaha, NE 68106
|
|
||||||
* 402.291.0100
|
|
||||||
*
|
|
||||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
|
||||||
* further licensing information.
|
|
||||||
**/
|
|
||||||
package com.raytheon.uf.viz.ui.menus.widgets;
|
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.eclipse.jface.action.ContributionItem;
|
|
||||||
import org.eclipse.jface.action.IContributionItem;
|
|
||||||
import org.eclipse.swt.widgets.Menu;
|
|
||||||
import org.eclipse.swt.widgets.ToolBar;
|
|
||||||
|
|
||||||
import com.raytheon.uf.common.menus.xml.CommonAbstractMenuContribution;
|
|
||||||
import com.raytheon.uf.common.menus.xml.VariableSubstitution;
|
|
||||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
|
||||||
import com.raytheon.uf.common.status.UFStatus;
|
|
||||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
|
||||||
import com.raytheon.uf.viz.core.exception.VizException;
|
|
||||||
import com.raytheon.uf.viz.ui.menus.xml.IncludeMenuItem;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Waits to load included files until the menu is filled.
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
*
|
|
||||||
* SOFTWARE HISTORY
|
|
||||||
*
|
|
||||||
* Date Ticket# Engineer Description
|
|
||||||
* ------------ ---------- ----------- --------------------------
|
|
||||||
* Sep 13, 2011 bsteffen Initial creation
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* @author bsteffen
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
public class IncludeContributionItem extends ContributionItem {
|
|
||||||
static final transient IUFStatusHandler statusHandler = UFStatus
|
|
||||||
.getHandler(IncludeContributionItem.class);
|
|
||||||
|
|
||||||
private final IncludeMenuItem imc;
|
|
||||||
|
|
||||||
private final CommonAbstractMenuContribution contribs;
|
|
||||||
|
|
||||||
private final VariableSubstitution[] incomingSubs;
|
|
||||||
|
|
||||||
private final Set<String> removalsIn;
|
|
||||||
|
|
||||||
private IContributionItem[] items = null;
|
|
||||||
|
|
||||||
public IncludeContributionItem(IncludeMenuItem imc,
|
|
||||||
CommonAbstractMenuContribution contribs,
|
|
||||||
VariableSubstitution[] incomingSubs, Set<String> removalsIn) {
|
|
||||||
super();
|
|
||||||
this.imc = imc;
|
|
||||||
this.contribs = contribs;
|
|
||||||
this.incomingSubs = incomingSubs;
|
|
||||||
this.removalsIn = removalsIn;
|
|
||||||
}
|
|
||||||
|
|
||||||
public synchronized IContributionItem[] getContributionItems() {
|
|
||||||
if (items == null) {
|
|
||||||
try {
|
|
||||||
items = imc.getAllContributionItems(contribs, incomingSubs,
|
|
||||||
removalsIn);
|
|
||||||
} catch (VizException e) {
|
|
||||||
statusHandler.handle(Priority.SIGNIFICANT,
|
|
||||||
"Error setting up menus", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return items;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fill(Menu menu, int index) {
|
|
||||||
IContributionItem[] items = getContributionItems();
|
|
||||||
if (index == -1) {
|
|
||||||
index = menu.getItemCount();
|
|
||||||
}
|
|
||||||
getContributionItems();
|
|
||||||
for (int i = 0; i < items.length; i++) {
|
|
||||||
IContributionItem item = items[i];
|
|
||||||
int oldItemCount = menu.getItemCount();
|
|
||||||
if (item.isVisible()) {
|
|
||||||
item.fill(menu, index);
|
|
||||||
}
|
|
||||||
int newItemCount = menu.getItemCount();
|
|
||||||
int numAdded = newItemCount - oldItemCount;
|
|
||||||
index += numAdded;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fill(ToolBar toolbar, int index) {
|
|
||||||
IContributionItem[] items = getContributionItems();
|
|
||||||
if (index == -1) {
|
|
||||||
index = toolbar.getItemCount();
|
|
||||||
}
|
|
||||||
getContributionItems();
|
|
||||||
for (int i = 0; i < items.length; i++) {
|
|
||||||
IContributionItem item = items[i];
|
|
||||||
int oldItemCount = toolbar.getItemCount();
|
|
||||||
if (item.isVisible()) {
|
|
||||||
item.fill(toolbar, index);
|
|
||||||
}
|
|
||||||
int newItemCount = toolbar.getItemCount();
|
|
||||||
int numAdded = newItemCount - oldItemCount;
|
|
||||||
index += numAdded;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isDynamic() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.jface.action.ContributionItem#isDirty()
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean isDirty() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void dispose() {
|
|
||||||
super.dispose();
|
|
||||||
if (items != null) {
|
|
||||||
for (IContributionItem item : items) {
|
|
||||||
item.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -23,7 +23,6 @@ import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.jface.action.IContributionItem;
|
import org.eclipse.jface.action.IContributionItem;
|
||||||
import org.eclipse.jface.action.IMenuListener;
|
|
||||||
import org.eclipse.jface.action.MenuManager;
|
import org.eclipse.jface.action.MenuManager;
|
||||||
import org.eclipse.swt.widgets.Menu;
|
import org.eclipse.swt.widgets.Menu;
|
||||||
|
|
||||||
|
@ -79,14 +78,11 @@ public class SubmenuContributionItem extends MenuManager {
|
||||||
*/
|
*/
|
||||||
public SubmenuContributionItem(VariableSubstitution[] includeSubstitutions,
|
public SubmenuContributionItem(VariableSubstitution[] includeSubstitutions,
|
||||||
String name, CommonAbstractMenuContribution[] ci,
|
String name, CommonAbstractMenuContribution[] ci,
|
||||||
Set<String> removals, IMenuListener menuListener) {
|
Set<String> removals) {
|
||||||
super(processNameSubstitution(includeSubstitutions, name));
|
super(processNameSubstitution(includeSubstitutions, name));
|
||||||
this.subs = includeSubstitutions;
|
this.subs = includeSubstitutions;
|
||||||
this.contribs = ci;
|
this.contribs = ci;
|
||||||
this.removals = removals;
|
this.removals = removals;
|
||||||
if (menuListener != null) {
|
|
||||||
this.addMenuListener(menuListener);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String processNameSubstitution(
|
private static String processNameSubstitution(
|
||||||
|
|
|
@ -37,8 +37,6 @@ import org.eclipse.swt.widgets.Listener;
|
||||||
import org.eclipse.swt.widgets.Menu;
|
import org.eclipse.swt.widgets.Menu;
|
||||||
import org.eclipse.swt.widgets.MenuItem;
|
import org.eclipse.swt.widgets.MenuItem;
|
||||||
|
|
||||||
import com.raytheon.uf.viz.ui.menus.xml.IVizMenuManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO Add Description
|
* TODO Add Description
|
||||||
*
|
*
|
||||||
|
@ -72,6 +70,7 @@ public class TearOffMenuListener implements IMenuListener2 {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void menuAboutToShow(final IMenuManager manager) {
|
public void menuAboutToShow(final IMenuManager manager) {
|
||||||
|
// new Exception().printStackTrace();
|
||||||
register(manager.getItems(), this);
|
register(manager.getItems(), this);
|
||||||
if (openDialogs.contains(manager) == false) {
|
if (openDialogs.contains(manager) == false) {
|
||||||
// No open dialog for this menu, add tear off button
|
// No open dialog for this menu, add tear off button
|
||||||
|
@ -86,8 +85,8 @@ public class TearOffMenuListener implements IMenuListener2 {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void menuAboutToHide(IMenuManager manager) {
|
public void menuAboutToHide(IMenuManager manager) {
|
||||||
unregister(manager.getItems(), this);
|
|
||||||
manager.remove(ID);
|
manager.remove(ID);
|
||||||
|
unregister(manager.getItems(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register(IContributionItem[] items,
|
public static void register(IContributionItem[] items,
|
||||||
|
@ -95,8 +94,6 @@ public class TearOffMenuListener implements IMenuListener2 {
|
||||||
for (IContributionItem item : items) {
|
for (IContributionItem item : items) {
|
||||||
if (item instanceof IMenuManager) {
|
if (item instanceof IMenuManager) {
|
||||||
((IMenuManager) item).addMenuListener(listener);
|
((IMenuManager) item).addMenuListener(listener);
|
||||||
} else if (item instanceof IVizMenuManager) {
|
|
||||||
((IVizMenuManager) item).addMenuListener(listener);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,9 +102,7 @@ public class TearOffMenuListener implements IMenuListener2 {
|
||||||
IMenuListener listener) {
|
IMenuListener listener) {
|
||||||
for (IContributionItem item : items) {
|
for (IContributionItem item : items) {
|
||||||
if (item instanceof IMenuManager) {
|
if (item instanceof IMenuManager) {
|
||||||
// ((IMenuManager) item).removeMenuListener(listener);
|
((IMenuManager) item).removeMenuListener(listener);
|
||||||
} else if (item instanceof IVizMenuManager) {
|
|
||||||
((IVizMenuManager) item).removeMenuListener(listener);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -182,9 +177,12 @@ public class TearOffMenuListener implements IMenuListener2 {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(Event event) {
|
public void handleEvent(Event event) {
|
||||||
openDialogs.remove(manager);
|
openDialogs.remove(manager);
|
||||||
|
manager.remove(ID);
|
||||||
|
unregister(manager.getItems(), TearOffMenuListener.this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openDialogs.add(manager);
|
openDialogs.add(manager);
|
||||||
|
register(manager.getItems(), TearOffMenuListener.this);
|
||||||
dialog.open();
|
dialog.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
package com.raytheon.uf.viz.ui.menus.xml;
|
|
||||||
|
|
||||||
import org.eclipse.jface.action.IMenuListener;
|
|
||||||
|
|
||||||
public interface IVizMenuManager {
|
|
||||||
public void addMenuListener(IMenuListener listener);
|
|
||||||
|
|
||||||
public void removeMenuListener(IMenuListener listener);
|
|
||||||
}
|
|
|
@ -60,8 +60,6 @@ import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
|
||||||
public class IncludeMenuContribution extends
|
public class IncludeMenuContribution extends
|
||||||
AbstractMenuContributionItem<CommonIncludeMenuContribution> {
|
AbstractMenuContributionItem<CommonIncludeMenuContribution> {
|
||||||
|
|
||||||
private SubmenuContributionItem submenuCont = null;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IContributionItem[] getContributionItems(
|
public IContributionItem[] getContributionItems(
|
||||||
CommonAbstractMenuContribution items, VariableSubstitution[] subs,
|
CommonAbstractMenuContribution items, VariableSubstitution[] subs,
|
||||||
|
@ -73,10 +71,9 @@ public class IncludeMenuContribution extends
|
||||||
newItem.id = item.id;
|
newItem.id = item.id;
|
||||||
newItem.substitutions = item.substitutions;
|
newItem.substitutions = item.substitutions;
|
||||||
newItem.suppressErrors = item.suppressErrors;
|
newItem.suppressErrors = item.suppressErrors;
|
||||||
submenuCont = new SubmenuContributionItem(subs, item.subMenuName,
|
return new IContributionItem[] { new SubmenuContributionItem(subs,
|
||||||
new CommonAbstractMenuContribution[] { newItem }, removals,
|
item.subMenuName,
|
||||||
null);
|
new CommonAbstractMenuContribution[] { newItem }, removals) };
|
||||||
return new IContributionItem[] { submenuCont };
|
|
||||||
}
|
}
|
||||||
return getContributionItemsInternal(items, subs, removals);
|
return getContributionItemsInternal(items, subs, removals);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,6 @@ import javax.xml.bind.JAXBException;
|
||||||
import javax.xml.bind.Unmarshaller;
|
import javax.xml.bind.Unmarshaller;
|
||||||
|
|
||||||
import org.eclipse.jface.action.IContributionItem;
|
import org.eclipse.jface.action.IContributionItem;
|
||||||
import org.eclipse.jface.action.IMenuListener;
|
|
||||||
|
|
||||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||||
import com.raytheon.uf.common.menus.MenuSerialization;
|
import com.raytheon.uf.common.menus.MenuSerialization;
|
||||||
|
@ -45,7 +44,6 @@ import com.raytheon.uf.common.status.UFStatus;
|
||||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||||
import com.raytheon.uf.viz.core.exception.VizException;
|
import com.raytheon.uf.viz.core.exception.VizException;
|
||||||
import com.raytheon.uf.viz.ui.menus.DiscoverMenuContributions;
|
import com.raytheon.uf.viz.ui.menus.DiscoverMenuContributions;
|
||||||
import com.raytheon.uf.viz.ui.menus.widgets.IncludeContributionItem;
|
|
||||||
import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
|
import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,14 +63,12 @@ import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class IncludeMenuItem extends CommonIncludeMenuItem implements
|
public class IncludeMenuItem extends CommonIncludeMenuItem implements
|
||||||
IContribItemProvider, ISerializableObject, IVizMenuManager {
|
IContribItemProvider, ISerializableObject {
|
||||||
static final transient IUFStatusHandler statusHandler = UFStatus
|
static final transient IUFStatusHandler statusHandler = UFStatus
|
||||||
.getHandler(IncludeMenuItem.class);
|
.getHandler(IncludeMenuItem.class);
|
||||||
|
|
||||||
private SubmenuContributionItem submenuCont = null;
|
private SubmenuContributionItem submenuCont = null;
|
||||||
|
|
||||||
private IMenuListener mListener = null;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
|
@ -87,7 +83,7 @@ public class IncludeMenuItem extends CommonIncludeMenuItem implements
|
||||||
throws VizException {
|
throws VizException {
|
||||||
if (subMenuName != null) {
|
if (subMenuName != null) {
|
||||||
submenuCont = new SubmenuContributionItem(incomingSubs,
|
submenuCont = new SubmenuContributionItem(incomingSubs,
|
||||||
subMenuName, null, removalsIn, mListener) {
|
subMenuName, null, removalsIn) {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected synchronized IContributionItem[][] getContributionItems() {
|
protected synchronized IContributionItem[][] getContributionItems() {
|
||||||
|
@ -115,9 +111,7 @@ public class IncludeMenuItem extends CommonIncludeMenuItem implements
|
||||||
};
|
};
|
||||||
return new IContributionItem[] { submenuCont };
|
return new IContributionItem[] { submenuCont };
|
||||||
}
|
}
|
||||||
// return getAllContributionItems(items, incomingSubs, removalsIn);
|
return getAllContributionItems(items, incomingSubs, removalsIn);
|
||||||
return new IContributionItem[] { new IncludeContributionItem(this,
|
|
||||||
items, incomingSubs, removalsIn) };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public IContributionItem[] getAllContributionItems(
|
public IContributionItem[] getAllContributionItems(
|
||||||
|
@ -179,20 +173,4 @@ public class IncludeMenuItem extends CommonIncludeMenuItem implements
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addMenuListener(IMenuListener listener) {
|
|
||||||
mListener = listener;
|
|
||||||
// can't add it to the submenu if the submenu doesn't exist
|
|
||||||
if (submenuCont != null) {
|
|
||||||
submenuCont.addMenuListener(mListener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeMenuListener(IMenuListener listener) {
|
|
||||||
if (submenuCont != null) {
|
|
||||||
submenuCont.removeMenuListener(listener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,14 +23,12 @@ import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.jface.action.IContributionItem;
|
import org.eclipse.jface.action.IContributionItem;
|
||||||
import org.eclipse.jface.action.IMenuListener;
|
|
||||||
|
|
||||||
import com.raytheon.uf.common.menus.xml.CommonAbstractMenuContribution;
|
import com.raytheon.uf.common.menus.xml.CommonAbstractMenuContribution;
|
||||||
import com.raytheon.uf.common.menus.xml.CommonSubmenuContribution;
|
import com.raytheon.uf.common.menus.xml.CommonSubmenuContribution;
|
||||||
import com.raytheon.uf.common.menus.xml.VariableSubstitution;
|
import com.raytheon.uf.common.menus.xml.VariableSubstitution;
|
||||||
import com.raytheon.uf.viz.core.exception.VizException;
|
import com.raytheon.uf.viz.core.exception.VizException;
|
||||||
import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
|
import com.raytheon.uf.viz.ui.menus.widgets.SubmenuContributionItem;
|
||||||
import com.raytheon.uf.viz.ui.menus.widgets.tearoff.TearOffMenuListener;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Describes a submenu contribution
|
* Describes a submenu contribution
|
||||||
|
@ -48,12 +46,7 @@ import com.raytheon.uf.viz.ui.menus.widgets.tearoff.TearOffMenuListener;
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class SubmenuContribution extends
|
public class SubmenuContribution extends
|
||||||
AbstractMenuContributionItem<CommonSubmenuContribution> implements
|
AbstractMenuContributionItem<CommonSubmenuContribution> {
|
||||||
IVizMenuManager {
|
|
||||||
|
|
||||||
private SubmenuContributionItem submenuCont = null;
|
|
||||||
|
|
||||||
private IMenuListener mListener = null;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
|
@ -71,25 +64,8 @@ public class SubmenuContribution extends
|
||||||
if (removals.contains(item.id))
|
if (removals.contains(item.id))
|
||||||
return new IContributionItem[0];
|
return new IContributionItem[0];
|
||||||
|
|
||||||
submenuCont = new SubmenuContributionItem(subs, item.menuText,
|
return new IContributionItem[] { new SubmenuContributionItem(subs,
|
||||||
item.contributions, new HashSet<String>(), mListener);
|
item.menuText, item.contributions, new HashSet<String>()) };
|
||||||
// adding tear off listener, seems out of place, but must be done
|
|
||||||
if (mListener == null
|
|
||||||
&& com.raytheon.uf.viz.core.Activator.getDefault()
|
|
||||||
.getPreferenceStore().getBoolean("tearoffmenus")) {
|
|
||||||
mListener = new TearOffMenuListener(submenuCont);
|
|
||||||
submenuCont.addMenuListener(mListener);
|
|
||||||
}
|
|
||||||
return new IContributionItem[] { submenuCont };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addMenuListener(IMenuListener listener) {
|
|
||||||
mListener = listener;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeMenuListener(IMenuListener listener) {
|
|
||||||
submenuCont.removeMenuListener(listener);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
package com.raytheon.viz.volumebrowser.vbui;
|
package com.raytheon.viz.volumebrowser.vbui;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.jface.action.IContributionItem;
|
import org.eclipse.jface.action.IContributionItem;
|
||||||
|
@ -33,8 +34,6 @@ import org.eclipse.swt.widgets.ToolItem;
|
||||||
import org.eclipse.ui.PlatformUI;
|
import org.eclipse.ui.PlatformUI;
|
||||||
import org.eclipse.ui.menus.IMenuService;
|
import org.eclipse.ui.menus.IMenuService;
|
||||||
|
|
||||||
import com.raytheon.uf.viz.ui.menus.widgets.IncludeContributionItem;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Implementation of multiline toolbars. Use add and populate to build a toolbar
|
* Implementation of multiline toolbars. Use add and populate to build a toolbar
|
||||||
|
@ -149,21 +148,6 @@ public class MultiToolbar extends Composite {
|
||||||
ms.populateContributionManager(tbm, location);
|
ms.populateContributionManager(tbm, location);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<IContributionItem> getContributionItems(
|
|
||||||
IContributionItem[] items) {
|
|
||||||
List<IContributionItem> list = new ArrayList<IContributionItem>();
|
|
||||||
for (IContributionItem item : items) {
|
|
||||||
if (item instanceof IncludeContributionItem) {
|
|
||||||
IncludeContributionItem includeItem = (IncludeContributionItem) item;
|
|
||||||
list.addAll(getContributionItems(includeItem
|
|
||||||
.getContributionItems()));
|
|
||||||
} else {
|
|
||||||
list.add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* split into multiple bars, this is probably why you are using this class.
|
* split into multiple bars, this is probably why you are using this class.
|
||||||
*
|
*
|
||||||
|
@ -173,7 +157,7 @@ public class MultiToolbar extends Composite {
|
||||||
this.numBars = numBars;
|
this.numBars = numBars;
|
||||||
List<IContributionItem> items = new ArrayList<IContributionItem>();
|
List<IContributionItem> items = new ArrayList<IContributionItem>();
|
||||||
for (ToolBarManager tbm : tbms) {
|
for (ToolBarManager tbm : tbms) {
|
||||||
items.addAll(getContributionItems(tbm.getItems()));
|
items.addAll(Arrays.asList(tbm.getItems()));
|
||||||
}
|
}
|
||||||
disposeToolbars();
|
disposeToolbars();
|
||||||
splitContruibutionItems(items, numBars);
|
splitContruibutionItems(items, numBars);
|
||||||
|
|
Loading…
Add table
Reference in a new issue