/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* 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://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 org.drools.workbench.screens.guided.dtable.client.widget.table;
import java.util.Arrays;
import org.drools.workbench.models.guided.dtable.shared.model.AttributeCol52;
import org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52;
import org.drools.workbench.models.guided.dtable.shared.model.MetadataCol52;
import org.drools.workbench.screens.guided.dtable.client.resources.i18n.GuidedDecisionTableConstants;
import org.drools.workbench.screens.guided.rule.client.editor.AttributeSelectorPopup;
import org.drools.workbench.screens.guided.rule.client.editor.RuleAttributeWidget;
public class GuidedDecisionTableAttributeSelectorPopup extends AttributeSelectorPopup {
private final String[] reservedAttributeNames;
private final GuidedDecisionTableView.Presenter presenter;
public GuidedDecisionTableAttributeSelectorPopup( final String[] reservedAttributeNames,
final GuidedDecisionTableView.Presenter presenter ) {
this.reservedAttributeNames = reservedAttributeNames;
this.presenter = presenter;
initialize();
}
@Override
protected String[] getAttributes() {
String[] attributes = RuleAttributeWidget.getAttributesList();
attributes = Arrays.copyOf( attributes, attributes.length + 1 );
attributes[attributes.length - 1] = GuidedDecisionTable52.NEGATE_RULE_ATTR;
return attributes;
}
@Override
protected String[] getReservedAttributes() {
return reservedAttributeNames;
}
@Override
protected void handleAttributeAddition( String attributeName ) {
final AttributeCol52 column = new AttributeCol52();
column.setAttribute( attributeName );
presenter.appendColumn( column );
}
@Override
protected boolean isMetadataUnique( String metadataName ) {
return presenter.isMetaDataUnique( metadataName );
}
@Override
protected String metadataNotUniqueMessage( String metadataName ) {
return GuidedDecisionTableConstants.INSTANCE.ThatColumnNameIsAlreadyInUsePleasePickAnother();
}
@Override
protected void handleMetadataAddition( String metadataName ) {
final MetadataCol52 column = new MetadataCol52();
column.setMetadata( metadataName );
column.setHideColumn( true );
presenter.appendColumn( column );
}
}