private void setComboList() { int index = cCombo.getSelectionIndex(); if (index < 0) index = 0; // default selection is "NO OVERLAY" String text = cCombo.getText(); ArrayList<String> itemList = new ArrayList<String>(10); itemList.add(IConstant.NO_OVERLAY); Collection<MPart> parts = partService.getParts(); for (MPart part : parts) { if (isOverlayPart(part)) { if (part.getContext() != null) { // part is instantiated itemList.add(part.getLabel()); } } } String[] items = itemList.toArray(new String[0]); cCombo.setItems(items); if (index > 0) { int newIndex = 0; for (int i = 1; i < items.length; i++) { if (text.equals(items[i])) { newIndex = i; break; } } index = newIndex; } cCombo.select(index); ((GcodeViewPart) part.getObject()) .getGcodeViewGroup() .setOverlayGcodeProgram(getSelectedProgram(cCombo.getText())); }
private IGcodeProgram getSelectedProgram(String text) { LOG.debug("getSelectedProgram: text=" + text); Collection<MPart> parts = partService.getParts(); for (MPart part : parts) { if (isOverlayPart(part)) { if (text.equals(part.getLabel())) { final IEclipseContext context = part.getContext(); if (context != null) return context.get(IGcodeProgram.class); } } } // if part is not instantiated and therefore gcode program is not loaded, then we are here return null; }