/* * Copyright 2012 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.kie.workbench.common.screens.projecteditor.client.forms; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import com.google.gwt.core.client.GWT; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; import org.gwtbootstrap3.client.ui.PageHeader; import org.gwtbootstrap3.client.ui.Radio; import org.kie.workbench.common.screens.projecteditor.client.resources.ProjectEditorResources; import org.kie.workbench.common.services.shared.kmodule.KSessionModel; //@Dependent public class KBaseFormViewImpl extends Composite implements KBaseFormView { private Presenter presenter; interface KnowledgeBaseConfigurationFormViewImplBinder extends UiBinder<Widget, KBaseFormViewImpl> { } private static KnowledgeBaseConfigurationFormViewImplBinder uiBinder = GWT.create( KnowledgeBaseConfigurationFormViewImplBinder.class ); @UiField( provided = true ) CRUDListBox includesListBox; @UiField( provided = true ) CRUDListBox packagesListBox; @UiField PageHeader nameLabel; @UiField Radio equalsBehaviorIdentity; @UiField Radio equalsBehaviorEquality; @UiField Radio eventProcessingModeStream; @UiField Radio eventProcessingModeCloud; @UiField( provided = true ) KSessionsPanel statefulSessionsPanel; @Inject public KBaseFormViewImpl( KSessionsPanel statefulSessionsPanel, CRUDListBox includesListBox, CRUDListBox packagesListBox ) { this.statefulSessionsPanel = statefulSessionsPanel; this.includesListBox = includesListBox; this.packagesListBox = packagesListBox; packagesListBox.addRemoveItemHandler( new RemoveItemHandler() { @Override public void onRemoveItem( RemoveItemEvent event ) { presenter.onDeletePackage( event.getItemName() ); } } ); packagesListBox.addAddItemHandler( new AddItemHandler() { @Override public void onAddItem( AddItemEvent event ) { presenter.onAddPackage( event.getItemName() ); } } ); includesListBox.addRemoveItemHandler( new RemoveItemHandler() { @Override public void onRemoveItem( RemoveItemEvent event ) { presenter.onDeleteIncludedKBase( event.getItemName() ); } } ); includesListBox.addAddItemHandler( new AddItemHandler() { @Override public void onAddItem( AddItemEvent event ) { presenter.onAddIncludedKBase( event.getItemName() ); } } ); initWidget( uiBinder.createAndBindUi( this ) ); } @Override public void setPresenter( Presenter presenter ) { this.presenter = presenter; } @Override public void setName( String name ) { nameLabel.setText( name ); } @Override public void setDefault( boolean aDefault ) { if ( aDefault ) { nameLabel.setSubText( ProjectEditorResources.CONSTANTS.BracketDefaultBracket() ); } else { nameLabel.setSubText( "" ); } } @Override public void setEqualsBehaviorEquality() { equalsBehaviorEquality.setValue( true ); } @Override public void setEqualsBehaviorIdentity() { equalsBehaviorIdentity.setValue( true ); } @Override public void setEventProcessingModeStream() { eventProcessingModeStream.setValue( true ); } @Override public void setEventProcessingModeCloud() { eventProcessingModeCloud.setValue( true ); } @Override public void setStatefulSessions( List<KSessionModel> items ) { statefulSessionsPanel.setItems( items ); } @Override public void setReadOnly() { equalsBehaviorIdentity.setEnabled( false ); equalsBehaviorEquality.setEnabled( false ); eventProcessingModeStream.setEnabled( false ); eventProcessingModeCloud.setEnabled( false ); statefulSessionsPanel.makeReadOnly(); includesListBox.makeReadOnly(); packagesListBox.makeReadOnly(); } @Override public void makeEditable() { equalsBehaviorIdentity.setEnabled( true ); equalsBehaviorEquality.setEnabled( true ); eventProcessingModeStream.setEnabled( true ); eventProcessingModeCloud.setEnabled( true ); statefulSessionsPanel.makeEditable(); includesListBox.makeEditable(); packagesListBox.makeEditable(); } @Override public void addPackageName( String name ) { packagesListBox.addItem( name ); } @Override public void addIncludedKBase( String name ) { includesListBox.addItem( name ); } @Override public void clear() { nameLabel.setText( "" ); nameLabel.setSubText( "" ); includesListBox.clear(); packagesListBox.clear(); equalsBehaviorIdentity.setValue( true ); eventProcessingModeStream.setValue( true ); statefulSessionsPanel.setItems( new ArrayList<KSessionModel>() ); } @UiHandler( "equalsBehaviorIdentity" ) public void onEqualsBehaviorIdentityChange( ValueChangeEvent<Boolean> valueChangeEvent ) { if ( equalsBehaviorIdentity.getValue() ) { presenter.onEqualsBehaviorIdentitySelect(); } } @UiHandler( "equalsBehaviorEquality" ) public void onEqualsBehaviorEqualityChange( ValueChangeEvent<Boolean> valueChangeEvent ) { if ( equalsBehaviorEquality.getValue() ) { presenter.onEqualsBehaviorEqualitySelect(); } } @UiHandler( "eventProcessingModeStream" ) public void onEventProcessingModeStreamChange( ValueChangeEvent<Boolean> valueChangeEvent ) { if ( eventProcessingModeStream.getValue() ) { presenter.onEventProcessingModeStreamSelect(); } } @UiHandler( "eventProcessingModeCloud" ) public void onEventProcessingModeCloudChange( ValueChangeEvent<Boolean> valueChangeEvent ) { if ( eventProcessingModeCloud.getValue() ) { presenter.onEventProcessingModeCloudSelect(); } } }