/*
* 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.guvnor.asset.management.client.editors.repository.structure;
import javax.enterprise.context.Dependent;
import javax.enterprise.event.Event;
import javax.inject.Inject;
import org.guvnor.asset.management.client.i18n.Constants;
import org.guvnor.asset.management.model.RepositoryStructureModel;
import org.guvnor.common.services.project.context.ProjectContext;
import org.uberfire.client.workbench.events.ChangeTitleWidgetEvent;
import org.uberfire.mvp.PlaceRequest;
import static org.drools.workbench.models.datamodel.util.PortablePreconditions.*;
@Dependent
public class RepositoryStructureTitle {
private final ProjectContext workbenchContext;
private final Event<ChangeTitleWidgetEvent> changeTitleWidgetEvent;
private PlaceRequest placeRequest;
@Inject
public RepositoryStructureTitle( final ProjectContext workbenchContext,
final Event<ChangeTitleWidgetEvent> changeTitleWidgetEvent ) {
this.workbenchContext = workbenchContext;
this.changeTitleWidgetEvent = changeTitleWidgetEvent;
}
public void init( final PlaceRequest placeRequest ) {
checkNotNull( "placeRequest.",
placeRequest );
this.placeRequest = placeRequest;
}
public void updateEditorTitle( final RepositoryStructureModel model,
final boolean initialized ) {
checkNotNull( "Please set placeRequest.",
placeRequest );
if ( workbenchContext.getActiveRepository() == null ) {
changeTitleWidgetEvent.fire( new ChangeTitleWidgetEvent( placeRequest,
Constants.INSTANCE.RepositoryNotSelected() ) );
} else if ( !initialized ) {
changeTitleWidgetEvent.fire( new ChangeTitleWidgetEvent( placeRequest,
Constants.INSTANCE.UnInitializedStructure( getRepositoryLabel() ) ) );
} else if ( model.isMultiModule() ) {
changeTitleWidgetEvent.fire( new ChangeTitleWidgetEvent( placeRequest,
Constants.INSTANCE.RepositoryStructureWithName( getRepositoryLabel() + "→ "
+ model.getPOM().getGav().getArtifactId() + ":"
+ model.getPOM().getGav().getGroupId() + ":"
+ model.getPOM().getGav().getVersion() ) ) );
} else if ( model.isSingleProject() ) {
changeTitleWidgetEvent.fire( new ChangeTitleWidgetEvent( placeRequest,
Constants.INSTANCE.RepositoryStructureWithName( getRepositoryLabel() + "→ " + model.getOrphanProjects().get( 0 ).getProjectName() ) ) );
} else {
changeTitleWidgetEvent.fire( new ChangeTitleWidgetEvent( placeRequest,
Constants.INSTANCE.UnmanagedRepository( getRepositoryLabel() ) ) );
}
}
private String getRepositoryLabel() {
return workbenchContext.getActiveRepository() != null ? (workbenchContext.getActiveRepository().getAlias() + " (" + workbenchContext.getActiveBranch() + ") ") : "";
}
}