/** * Gets the {@link AnalysisJobBuilder} object pertaining to a particular * vertex on the {@link JobGraph}. * * @param vertex * @return */ public AnalysisJobBuilder getAnalysisJobBuilder(final Object vertex) { if (vertex instanceof ComponentBuilder) { return ((ComponentBuilder) vertex).getAnalysisJobBuilder(); } return _analysisJobBuilder; }
public ComponentScopeMenuBuilder(final ComponentBuilder componentBuilder) { _componentBuilder = componentBuilder; _rootJobBuilder = _componentBuilder.getAnalysisJobBuilder().getRootJobBuilder(); }
private List<FilterComponentBuilder<?, ?>> getFilterJobBuilders() { final List<FilterComponentBuilder<?, ?>> fjbs; if (_componentBuilder instanceof FilterComponentBuilder<?, ?>) { fjbs = new LinkedList<>(_componentBuilder.getAnalysisJobBuilder().getFilterComponentBuilders()); fjbs.remove(_componentBuilder); } else { fjbs = _componentBuilder.getAnalysisJobBuilder().getFilterComponentBuilders(); } return fjbs; }
/** * Determines if changing requirements for a particular * {@link ComponentBuilder} is relevant or not. If no filters exist, it is * not relevant to even show the ability to set requirements. * * @param componentBuilder * @return */ public static boolean isRelevant(final ComponentBuilder componentBuilder) { return !componentBuilder.getAnalysisJobBuilder().getFilterComponentBuilders().isEmpty(); } }
protected final AnalysisJobBuilder getAnalysisJobBuilder() { return getComponentBuilder().getAnalysisJobBuilder(); }
public AnalysisJobBuilder getAnalysisJobBuilder() { return getComponentBuilder().getAnalysisJobBuilder(); }
public ComponentScopeButton(final ComponentBuilder componentBuilder, final ComponentScopeMenuBuilder menuBuilder) { super(ChangeRequirementMenuBuilder.NO_REQUIREMENT_TEXT, scopeIcon); _componentBuilder = componentBuilder; _menuBuilder = menuBuilder; _topLevelJobBuilder = componentBuilder.getAnalysisJobBuilder().getRootJobBuilder(); addActionListener(this); updateText(_componentBuilder.getAnalysisJobBuilder(), _menuBuilder.findComponentBuilder(_componentBuilder.getAnalysisJobBuilder())); WidgetUtils.setDefaultButtonStyle(this); }
/** * Adds a {@link ComponentBuilder} and removes it from its previous scope. * * @param builder * The builder to add * @return The same builder */ public ComponentBuilder moveComponent(final ComponentBuilder builder) { if (builder.getAnalysisJobBuilder() != this) { builder.getAnalysisJobBuilder().removeComponent(builder); // when moving the component to a different scope we need to first // reset // the prior input builder.clearInputColumns(); addComponent(builder); builder.setAnalysisJobBuilder(this); } return builder; }
@Override public void actionPerformed(final ActionEvent e) { final AnalysisJobBuilder analysisJobBuilder = _componentBuilder.getAnalysisJobBuilder(); if (_componentBuilder instanceof AnalyzerComponentBuilder) { analysisJobBuilder.removeAnalyzer((AnalyzerComponentBuilder<?>) _componentBuilder); } else if (_componentBuilder instanceof TransformerComponentBuilder) { analysisJobBuilder.removeTransformer((TransformerComponentBuilder<?>) _componentBuilder); } else if (_componentBuilder instanceof FilterComponentBuilder) { analysisJobBuilder.removeFilter((FilterComponentBuilder<?, ?>) _componentBuilder); } else { throw new IllegalStateException("Unexpected component type: " + _componentBuilder); } onRemoved(); }
protected Collection<InputColumn<?>> getCreateTableColumnSuggestions() { final ComponentBuilder componentBuilder = getComponentBuilder(); List<InputColumn<?>> columns = componentBuilder.getAnalysisJobBuilder().getAvailableInputColumns(componentBuilder); columns = CollectionUtils.filter(columns, column -> { if (column instanceof MutableInputColumn) { return !((MutableInputColumn<?>) column).isHidden(); } return true; }); return columns; }
public void refresh() { removeAll(); setEnabled(false); for (final OutputDataStream outputDataStream : _componentBuilder.getOutputDataStreams()) { setEnabled(true); final List<InputColumn<?>> inputColumns = new ArrayList<>(); for (final Column column : outputDataStream.getTable().getColumns()) { inputColumns.add(new MetaModelInputColumn(column)); } final JLabel tableNameLabel = new JLabel(outputDataStream.getName(), ImageManager.get().getImageIcon(IconUtils.OUTPUT_DATA_STREAM_PATH, IconUtils.ICON_SIZE_SMALL), JLabel.LEFT); tableNameLabel.setOpaque(false); tableNameLabel.setFont(WidgetUtils.FONT_HEADER1); tableNameLabel.setBorder(new EmptyBorder(5, 5, 0, 5)); final ColumnListTable columnListTable = new ColumnListTable(inputColumns, _componentBuilder.getAnalysisJobBuilder(), true, false, null); columnListTable.setBorder(new EmptyBorder(0, 5, 5, 5)); add(tableNameLabel); add(columnListTable); } }
private void synchronizeInputColumns(final TransformerComponentBuilder<?> changedBuilder) { if (!changedBuilder.equals(_componentBuilder)) { final List<InputColumn<?>> availableColumns = _componentBuilder.getAnalysisJobBuilder() .getAvailableInputColumns(_componentBuilder, _propertyDescriptor.getTypeArgument(0)); for (final ConfiguredPropertyDescriptor propertyDescriptor : _componentBuilder.getDescriptor() .getConfiguredPropertiesForInput()) { final Object configuredProperty = _componentBuilder.getConfiguredProperty(propertyDescriptor); if (configuredProperty != null) { if (ReflectionUtils.isInputColumn(configuredProperty.getClass())) { if (ReflectionUtils.isArray(configuredProperty)) { for (final InputColumn<?> column : (InputColumn<?>[]) configuredProperty) { if (!availableColumns.contains(column)) { _componentBuilder.removeInputColumn(column, propertyDescriptor); } } } else { if (!availableColumns.contains(configuredProperty)) { _componentBuilder .removeInputColumn((InputColumn<?>) configuredProperty, propertyDescriptor); } } } } } } }
}); if (_rootJobBuilder == _componentBuilder.getAnalysisJobBuilder()) { rootMenuItem.setIcon(selectedScopeIcon); if (osJobBuilder == _componentBuilder.getAnalysisJobBuilder()) { componentMenu.setIcon(selectedScopeIcon); scopeMenuItem.setIcon(selectedScopeIcon);
/** * This will check if components are in a different scope, and ask the user * for permission to change the scope of the target component * * @return true if permitted or irrelevant, false if user refused a * necessary scope change. */ private boolean scopeUpdatePermitted(final AnalysisJobBuilder sourceAnalysisJobBuilder, final ComponentBuilder componentBuilder) { if (sourceAnalysisJobBuilder != componentBuilder.getAnalysisJobBuilder()) { if (componentBuilder.getInput().length > 0 || componentBuilder.getComponentRequirement() != null) { final String scopeText; scopeText = LabelUtils.getScopeLabel(sourceAnalysisJobBuilder); final int response = JOptionPane.showConfirmDialog(_graphContext.getVisualizationViewer(), "This will move " + LabelUtils.getLabel(componentBuilder) + " into the " + scopeText + ", thereby losing its configured columns and/or requirements", "Change scope?", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); if (response == JOptionPane.CANCEL_OPTION) { _graphContext.getJobGraph().refresh(); return false; } } } return true; }
protected void addOrSetFilterOutcomeAsRequirement(final ComponentBuilder componentBuilder, final FilterOutcome filterOutcome) { final ComponentRequirement existingRequirement = componentBuilder.getComponentRequirement(); if (existingRequirement == null) { // set a new requirement final ComponentRequirement requirement = new SimpleComponentRequirement(filterOutcome); componentBuilder.setComponentRequirement(requirement); return; } final ComponentRequirement defaultRequirement = componentBuilder.getAnalysisJobBuilder().getDefaultRequirement(); if (existingRequirement.equals(defaultRequirement)) { // override the default requirement final ComponentRequirement requirement = new SimpleComponentRequirement(filterOutcome); componentBuilder.setComponentRequirement(requirement); return; } // add outcome to a compound requirement final CompoundComponentRequirement requirement = new CompoundComponentRequirement(existingRequirement, filterOutcome); componentBuilder.setComponentRequirement(requirement); }
@Override protected DCBannerPanel createBanner(final Image bannerImage) { final DCBannerPanel banner = new DCBannerPanel(bannerImage, getBannerTitle()); banner.setTitle2(getBannerTitle2(true)); final JButton renameButton = WidgetFactory.createDefaultButton("Rename", IconUtils.ACTION_RENAME); renameButton.addActionListener(new RenameComponentActionListener(_componentBuilder) { @Override protected void onNameChanged() { banner.setTitle2(getBannerTitle2(true)); banner.updateUI(); } }); final JButton documentationButton = WidgetFactory.createDefaultButton("Documentation", IconUtils.MENU_DOCUMENTATION); documentationButton.addActionListener(new ComponentReferenceDocumentationActionListener( _componentBuilder.getAnalysisJobBuilder().getConfiguration(), _componentBuilder.getDescriptor())); if (_componentScopeButton.isRelevant()) { banner.add(_componentScopeButton); } banner.add(documentationButton); _changeRequirementButton.setVisible(ChangeRequirementMenu.isRelevant(_componentBuilder)); banner.add(_changeRequirementButton); banner.add(renameButton); return banner; }
if (mappedToPropertyWidget == null) { final DatastoreCatalog datastoreCatalog = getComponentBuilder().getAnalysisJobBuilder().getConfiguration().getDatastoreCatalog(); datastorePropertyWidget = new SingleDatastorePropertyWidget(getComponentBuilder(), mappedToProperty, datastoreCatalog,