/* * Copyright 2015 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. * * 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.guvnor.common.services.project.client; import java.util.ArrayList; import javax.inject.Inject; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.Widget; import org.guvnor.common.services.project.model.GAV; public class GAVEditor implements GAVEditorView.Presenter, IsWidget { private final GAVEditorView view; private GAV gav; private ArrayList<GroupIdChangeHandler> groupIdChangeHandlers = new ArrayList<GroupIdChangeHandler>(); private ArrayList<ArtifactIdChangeHandler> artifactIdChangeHandlers = new ArrayList<ArtifactIdChangeHandler>(); private ArrayList<VersionChangeHandler> versionChangeHandlers = new ArrayList<VersionChangeHandler>(); @Inject public GAVEditor( final GAVEditorView view ) { this.view = view; view.setPresenter( this ); } @Override public void setGAV( final GAV gav ) { this.gav = gav; view.setGroupId( gav.getGroupId() ); view.setArtifactId( gav.getArtifactId() ); view.setVersion( gav.getVersion() ); } @Override public void setArtifactID( final String artifactID ) { view.setArtifactId( artifactID ); gav.setArtifactId( artifactID ); } @Override public void onGroupIdChange( final String groupId ) { gav.setGroupId( groupId ); for ( GroupIdChangeHandler handler : groupIdChangeHandlers ) { handler.onChange( groupId ); } } @Override public void onArtifactIdChange( final String artifactId ) { gav.setArtifactId( artifactId ); for ( ArtifactIdChangeHandler handler : artifactIdChangeHandlers ) { handler.onChange( artifactId ); } } @Override public void onVersionChange( final String version ) { gav.setVersion( version ); for ( VersionChangeHandler handler : versionChangeHandlers ) { handler.onChange( version ); } } @Override public void addGroupIdChangeHandler( final GroupIdChangeHandler changeHandler ) { groupIdChangeHandlers.add( changeHandler ); } @Override public void addArtifactIdChangeHandler( final ArtifactIdChangeHandler changeHandler ) { artifactIdChangeHandlers.add( changeHandler ); } @Override public void addVersionChangeHandler( final VersionChangeHandler changeHandler ) { versionChangeHandlers.add( changeHandler ); } @Override public Widget asWidget() { return view.asWidget(); } @Override public void setReadOnly() { view.setReadOnly(); } @Override public void disableGroupID( final String reason ) { view.disableGroupID( reason ); } @Override public void disableVersion( final String reason ) { view.disableVersion( reason ); } @Override public void disableArtifactID( final String reason ) { view.disableArtifactID( reason ); } @Override public void enableGroupID() { view.enableGroupID(); } @Override public void enableArtifactID() { view.enableArtifactID(); } @Override public void enableVersion() { view.enableVersion(); } @Override public void setValidGroupID( final boolean isValid ) { view.setValidGroupID( isValid ); } @Override public void setValidArtifactID( final boolean isValid ) { view.setValidArtifactID( isValid ); } @Override public void setValidVersion( final boolean isValid ) { view.setValidVersion( isValid ); } }