/*
* Copyright 2013 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.explorer.client.widgets.technical;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Widget;
import org.guvnor.common.services.project.model.Project;
import org.guvnor.structure.organizationalunit.OrganizationalUnit;
import org.guvnor.structure.repositories.Repository;
import org.kie.workbench.common.screens.explorer.client.widgets.BaseViewImpl;
import org.kie.workbench.common.screens.explorer.client.widgets.BaseViewPresenter;
import org.kie.workbench.common.screens.explorer.client.widgets.View;
import org.kie.workbench.common.screens.explorer.client.widgets.branches.BranchSelector;
import org.kie.workbench.common.screens.explorer.client.widgets.navigator.Explorer;
import org.kie.workbench.common.screens.explorer.client.widgets.navigator.NavigatorOptions;
import org.kie.workbench.common.screens.explorer.client.widgets.tagSelector.TagChangedEvent;
import org.kie.workbench.common.screens.explorer.client.widgets.tagSelector.TagSelector;
import org.kie.workbench.common.screens.explorer.model.FolderItem;
import org.kie.workbench.common.screens.explorer.model.FolderListing;
import org.uberfire.client.mvp.PlaceManager;
import org.uberfire.ext.widgets.common.client.common.BusyPopup;
/**
* Technical View implementation
*/
@ApplicationScoped
public class TechnicalViewWidget
extends BaseViewImpl
implements View {
private static TechnicalViewImplBinder uiBinder = GWT.create(TechnicalViewImplBinder.class);
private final NavigatorOptions techOptions = new NavigatorOptions() {{
showFiles(true);
showHiddenFiles(false);
showDirectories(true);
allowUpLink(true);
showItemAge(false);
showItemMessage(false);
showItemLastUpdater(false);
}};
@UiField
Explorer explorer;
@UiField(provided = true)
@Inject
TagSelector tagSelector;
@Inject
PlaceManager placeManager;
private BaseViewPresenter presenter;
@PostConstruct
public void init() {
//Cannot create and bind UI until after injection points have been initialized
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public void init(final BaseViewPresenter presenter) {
this.presenter = presenter;
explorer.init(techOptions,
Explorer.NavType.BREADCRUMB,
presenter);
}
@Override
public void setContent(final Project activeProject,
final FolderListing folderListing,
final Map<FolderItem, List<FolderItem>> siblings) {
explorer.setupHeader(activeProject);
tagSelector.loadContent(presenter.getActiveContentTags(),
presenter.getCurrentTag());
explorer.loadContent(folderListing,
siblings);
}
@Override
public void setItems(final FolderListing folderListing) {
renderItems(folderListing);
}
@Override
public void renderItems(FolderListing folderListing) {
tagSelector.loadContent(presenter.getActiveContentTags(),
presenter.getCurrentTag());
explorer.loadContent(folderListing);
}
@Override
public void showHiddenFiles(final boolean show) {
techOptions.showHiddenFiles(show);
}
@Override
public void setNavType(Explorer.NavType navType) {
explorer.setNavType(navType,
techOptions);
}
@Override
public void hideTagFilter() {
tagSelector.hide();
if (presenter.getActiveContent() != null) {
renderItems(presenter.getActiveContent());
}
}
@Override
public void showTagFilter() {
tagSelector.show();
}
@Override
public void hideHeaderNavigator() {
explorer.hideHeaderNavigator();
}
@Override
public void showHeaderNavigator() {
explorer.showHeaderNavigator();
}
@Override
public void showBusyIndicator(final String message) {
BusyPopup.showMessage(message);
}
@Override
public void hideBusyIndicator() {
BusyPopup.close();
}
@Override
public Explorer getExplorer() {
return explorer;
}
public void onTagChanged(@Observes TagChangedEvent event) {
}
interface TechnicalViewImplBinder
extends
UiBinder<Widget, TechnicalViewWidget> {
}
}