Example usage for com.google.gwt.user.client.ui SplitLayoutPanel SplitLayoutPanel

List of usage examples for com.google.gwt.user.client.ui SplitLayoutPanel SplitLayoutPanel

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui SplitLayoutPanel SplitLayoutPanel.

Prototype

public SplitLayoutPanel(int splitterSize) 

Source Link

Document

Construct a new SplitLayoutPanel with the specified splitter size in pixels.

Usage

From source file:org.jboss.as.console.client.shared.subsys.activemq.ActivemqFinderView.java

License:Open Source License

@Override
public Widget createWidget() {
    previewCanvas = new LayoutPanel();

    SplitLayoutPanel layout = new SplitLayoutPanel(2);
    columnManager = new ColumnManager(layout, FinderColumn.FinderId.CONFIGURATION);

    //  the settings column, it contains the "messaging provider" and "jms-bridge" link
    settingsColumn = new FinderColumn<>(FinderColumn.FinderId.CONFIGURATION, "Settings",
            new FinderColumn.Display<FinderItem>() {

                @Override//from   ww w.j a v  a2s.c  om
                public boolean isFolder(FinderItem data) {
                    return data.isFolder();
                }

                @Override
                public SafeHtml render(String baseCss, FinderItem data) {
                    return TEMPLATE.item(baseCss, data.getTitle());
                }

                @Override
                public String rowCss(FinderItem data) {
                    // if folder, do not show the "view" link button
                    return data.isFolder() ? "no-menu" : "";
                }
            }, new ProvidesKey<FinderItem>() {
                @Override
                public Object getKey(FinderItem item) {
                    return item.getTitle();
                }
            }, presenter.getProxy().getNameToken());

    settingsColumn.setPreviewFactory((data, callback) -> {
        if (MESSAGING_PROVIDER.equals(data.getTitle())) {
            previewContentFactory.createContent(PreviewContent.INSTANCE.messaging_provider(), callback);
        } else if (JMS_BRIDGE.equals(data.getTitle())) {
            previewContentFactory.createContent(PreviewContent.INSTANCE.jms_bridge(), callback);
        }
    });

    settingsColumn.setMenuItems(
            new MenuDelegate<>(Console.CONSTANTS.common_label_view(), item -> item.getCmd().execute()));

    List<FinderItem> settings = new ArrayList<>();
    FinderItem messagingPoviderFinderItem = new FinderItem(MESSAGING_PROVIDER, () -> {
        columnManager.reduceColumnsTo(1);
        columnManager.appendColumn(messagingProviderColumnWidget);
        presenter.loadProvider();
    }, true);
    settings.add(messagingPoviderFinderItem);
    settings.add(new FinderItem(JMS_BRIDGE,
            () -> placeManager.revealRelativePlace(new PlaceRequest(NameTokens.JMSBridge)), false));

    settingsColumn.addSelectionChangeHandler(event -> {
        if (settingsColumn.hasSelectedItem()) {
            columnManager.reduceColumnsTo(1);
            if (settingsColumn.hasSelectedItem()
                    && settingsColumn.getSelectedItem() == messagingPoviderFinderItem) {
                // load and displays the provider list.
                FinderItem item = settingsColumn.getSelectedItem();
                columnManager.updateActiveSelection(linksCol);
                item.getCmd().execute();
            }
        }
    });

    // the messaging-provider column, it display the list of messaging providers.
    messagingProviderColumn = new FinderColumn<>(FinderColumn.FinderId.CONFIGURATION,
            Console.MESSAGES.messagingProvider(), new FinderColumn.Display<Property>() {

                @Override
                public boolean isFolder(Property data) {
                    return false;
                }

                @Override
                public SafeHtml render(String baseCss, Property data) {
                    return TEMPLATE.item(baseCss, data.getName());
                }

                @Override
                public String rowCss(Property data) {
                    return "";
                }
            }, new ProvidesKey<Property>() {
                @Override
                public Object getKey(Property item) {
                    return item.getName();
                }
            }, presenter.getProxy().getNameToken());
    messagingProviderColumnWidget = messagingProviderColumn.asWidget();

    messagingProviderColumn.setTopMenuItems(new MenuDelegate<>(Console.CONSTANTS.common_label_add(),
            mailSession -> presenter.launchNewProviderWizard(), Operation));

    messagingProviderColumn
            .setMenuItems(
                    new MenuDelegate<>("Queues/Topics",
                            provider -> placeManager.revealRelativePlace(
                                    new PlaceRequest.Builder().nameToken(NameTokens.ActivemqMessagingPresenter)
                                            .with("name", provider.getName()).build())),

                    new MenuDelegate<>("Connections",
                            provider -> placeManager.revealRelativePlace(new PlaceRequest.Builder()
                                    .nameToken(NameTokens.ActivemqMsgConnectionsPresenter)
                                    .with("name", provider.getName()).build())),

                    new MenuDelegate<>("Clustering",
                            provider -> placeManager.revealRelativePlace(new PlaceRequest.Builder()
                                    .nameToken(NameTokens.ActivemqMsgClusteringPresenter)
                                    .with("name", provider.getName()).build())),

                    new MenuDelegate<>(Console.MESSAGES.providerSettings(),
                            presenter::onLaunchProviderSettings),

                    new MenuDelegate<>(Console.CONSTANTS.common_label_delete(),
                            provider -> Feedback.confirm(Console.MESSAGES.deleteTitle("Messaging Provider"),
                                    Console.MESSAGES.deleteConfirm("provider " + provider.getName()),
                                    isConfirmed -> {
                                        if (isConfirmed) {
                                            presenter.onDeleteProvider(provider);
                                        }
                                    }),
                            Operation));

    messagingProviderColumn.setPreviewFactory((data, callback) -> previewContentFactory
            .createContent(PreviewContent.INSTANCE.messaging_provider(), callback));

    messagingProviderColumn.addSelectionChangeHandler(event -> {
        if (messagingProviderColumn.hasSelectedItem()) {
            columnManager.updateActiveSelection(messagingProviderColumnWidget);
        }
    });

    linksCol = settingsColumn.asWidget();
    columnManager.addWest(linksCol);
    columnManager.addWest(messagingProviderColumnWidget);
    columnManager.add(previewCanvas);
    columnManager.setInitialVisible(1);

    settingsColumn.updateFrom(settings);
    return layout;
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ElytronFinderView.java

License:Apache License

@Override
public Widget createWidget() {
    previewCanvas = new LayoutPanel();

    layout = new SplitLayoutPanel(2);
    columnManager = new ColumnManager(layout, FinderColumn.FinderId.CONFIGURATION);

    links = new FinderColumn<FinderItem>(FinderColumn.FinderId.CONFIGURATION, "Settings",
            new FinderColumn.Display<FinderItem>() {

                @Override/*from  w w  w. j  a  va2s. c  om*/
                public boolean isFolder(FinderItem data) {
                    return false;
                }

                @Override
                public SafeHtml render(String baseCss, FinderItem data) {
                    return TEMPLATE.item(baseCss, data.getTitle());
                }

                @Override
                public String rowCss(FinderItem data) {
                    return "";
                }
            }, new ProvidesKey<FinderItem>() {
                @Override
                public Object getKey(FinderItem item) {
                    return item.getTitle();
                }
            }, presenter.getProxy().getNameToken());

    links.setPreviewFactory(new PreviewFactory<FinderItem>() {
        @Override
        public void createPreview(final FinderItem data, final AsyncCallback<SafeHtml> callback) {
            if (FACTORY.equals(data.getTitle())) {
                previewContentFactory.createContent(PreviewContent.INSTANCE.elytron_factory(), callback);

            } else if (MAPPER_DECODER.equals(data.getTitle())) {
                previewContentFactory.createContent(PreviewContent.INSTANCE.elytron_mapper(), callback);

            } else if (OTHER.equals(data.getTitle())) {
                previewContentFactory.createContent(PreviewContent.INSTANCE.elytron_settings(), callback);

            } else if (SECURITY_REALM.equals(data.getTitle())) {
                previewContentFactory.createContent(PreviewContent.INSTANCE.elytron_security_realm(), callback);
            }
        }
    });

    links.setMenuItems(
            new MenuDelegate<>(Console.CONSTANTS.common_label_view(), item -> item.getCmd().execute()));

    links.addSelectionChangeHandler(event -> {
        if (links.hasSelectedItem()) {
            FinderItem item = links.getSelectedItem();
            columnManager.updateActiveSelection(linksCol);
        }
    });

    linksCol = links.asWidget();

    columnManager.addWest(linksCol);
    columnManager.add(previewCanvas);

    columnManager.setInitialVisible(1);

    List<FinderItem> settings = new ArrayList<>();
    settings.add(new FinderItem(FACTORY,
            () -> placeManager.revealRelativePlace(new PlaceRequest(NameTokens.ElytronFactoryPresenter)),
            false));

    settings.add(new FinderItem(MAPPER_DECODER,
            () -> placeManager.revealRelativePlace(new PlaceRequest(NameTokens.ElytronMapperPresenter)),
            false));

    settings.add(new FinderItem(OTHER,
            () -> placeManager.revealRelativePlace(new PlaceRequest(NameTokens.ElytronPresenter)), false));

    settings.add(new FinderItem(SECURITY_REALM,
            () -> placeManager.revealRelativePlace(new PlaceRequest(NameTokens.ElytronSecurityRealmPresenter)),
            false));

    links.updateFrom(settings);
    return layout;
}

From source file:org.jboss.as.console.client.shared.subsys.picketlink.PicketLinkFinderView.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Widget createWidget() {
    previewCanvas = new LayoutPanel();
    SplitLayoutPanel layout = new SplitLayoutPanel(2);
    columnManager = new ColumnManager(layout, CONFIGURATION);

    // ------------------------------------------------------ service provider

    serviceProviderColumn = new FinderColumn<>(CONFIGURATION, "Service Provider",
            new FinderColumn.Display<Property>() {
                @Override//ww  w  .  jav a2s  .  c om
                public boolean isFolder(final Property data) {
                    return false;
                }

                @Override
                public SafeHtml render(final String baseCss, final Property data) {
                    return TEMPLATE.item(baseCss, data.getName());
                }

                @Override
                public String rowCss(final Property data) {
                    return "";
                }
            }, new ProvidesKey<Property>() {
                @Override
                public Object getKey(final Property data) {
                    return data.getName();
                }
            }, presenter.getProxy().getNameToken());

    serviceProviderColumn
            .setTopMenuItems(new MenuDelegate<>(Console.CONSTANTS.common_label_add(),
                    (ContextualCommand<Property>) item -> presenter
                            .launchAddServiceProviderDialog(federationsColumn.getSelectedItem().getName()),
                    Operation));
    serviceProviderColumn.setMenuItems(
            new MenuDelegate<>(Console.CONSTANTS.common_label_view(), (ContextualCommand<Property>) item -> {
                PlaceRequest placeRequest = new PlaceRequest.Builder()
                        .nameToken(NameTokens.PicketLinkServiceProvider)
                        .with(FEDERATION_REQUEST_PARAM, federationsColumn.getSelectedItem().getName())
                        .with(SERVICE_PROVIDER_REQUEST_PARAM, item.getName()).build();
                placeManager.revealRelativePlace(placeRequest);
            }, Navigation),
            new MenuDelegate<>(Console.CONSTANTS.common_label_delete(), (ContextualCommand<Property>) item -> {
                if (serviceProviderColumn.hasSelectedItem()) {
                    Property selectedItem = serviceProviderColumn.getSelectedItem();
                    Feedback.confirm(Console.MESSAGES.deleteTitle("Service Provider"),
                            Console.MESSAGES.deleteConfirm(selectedItem.getName()), isConfirmed -> {
                                if (isConfirmed) {
                                    presenter.removeServiceProvider(
                                            federationsColumn.getSelectedItem().getName(), selectedItem);
                                }
                            });
                }
            }, Operation));

    serviceProviderColumn.addSelectionChangeHandler(selectionChangeEvent -> {
        if (serviceProviderColumn.hasSelectedItem()) {
            columnManager.updateActiveSelection(serviceProviderColumnWidget);
        }
    });

    serviceProviderColumn.setPreviewFactory((data, callback) -> {
        String name = data.getName();
        ModelNode serviceProvider = data.getValue();
        String securityDomain = serviceProvider.get("security-domain").asString();
        String url = serviceProvider.get("url").asString();
        callback.onSuccess(TEMPLATE.serviceProviderPreview(name, securityDomain, url));
    });

    serviceProviderColumnWidget = serviceProviderColumn.asWidget();

    // ------------------------------------------------------ federation

    federationsColumn = new FinderColumn<>(CONFIGURATION, "Federation", new FinderColumn.Display<Property>() {
        @Override
        public boolean isFolder(final Property data) {
            return true;
        }

        @Override
        public SafeHtml render(final String baseCss, final Property data) {
            return TEMPLATE.item(baseCss, data.getName());
        }

        @Override
        public String rowCss(final Property data) {
            return "";
        }
    }, new ProvidesKey<Property>() {
        @Override
        public Object getKey(final Property data) {
            return data.getName();
        }
    }, presenter.getProxy().getNameToken());

    federationsColumn.setTopMenuItems(new MenuDelegate<>(Console.CONSTANTS.common_label_add(),
            (ContextualCommand<Property>) item -> presenter.launchAddFederationDialog(), Operation));
    federationsColumn.setMenuItems(
            new MenuDelegate<>(Console.CONSTANTS.common_label_view(), (ContextualCommand<Property>) item -> {
                PlaceRequest placeRequest = new PlaceRequest.Builder()
                        .nameToken(NameTokens.PicketLinkFederation)
                        .with(FEDERATION_REQUEST_PARAM, item.getName()).build();
                placeManager.revealRelativePlace(placeRequest);
            }, Navigation),
            new MenuDelegate<>(Console.CONSTANTS.common_label_delete(), (ContextualCommand<Property>) item -> {
                if (federationsColumn.hasSelectedItem()) {
                    Property selectedItem = federationsColumn.getSelectedItem();
                    Feedback.confirm(Console.MESSAGES.deleteTitle("Federation"),
                            Console.MESSAGES.deleteConfirm(selectedItem.getName()), isConfirmed -> {
                                if (isConfirmed) {
                                    presenter.removeFederation(selectedItem);
                                }
                            });
                }
            }, Operation));

    federationsColumn.addSelectionChangeHandler(selectionChangeEvent -> {
        columnManager.reduceColumnsTo(1);
        if (federationsColumn.hasSelectedItem()) {
            columnManager.updateActiveSelection(federationsColumnWidget);
            columnManager.appendColumn(serviceProviderColumnWidget);
            presenter.readServiceProvider(federationsColumn.getSelectedItem().getName());
        } else {
            startupContent(contentFactory);
        }
    });

    federationsColumn.setPreviewFactory((data, callback) -> {
        String name = data.getName();
        String identityProvider = "n/a";
        String securityDomain = "n/a";
        String url = "n/a";
        if (data.getValue().get("identity-provider").isDefined()) {
            Property property = data.getValue().get("identity-provider").asProperty();
            identityProvider = property.getName();
            securityDomain = property.getValue().get("security-domain").asString();
            url = property.getValue().get("url").asString();
        }
        callback.onSuccess(TEMPLATE.federationPreview(name, identityProvider, securityDomain, url));
    });

    federationsColumnWidget = federationsColumn.asWidget();
    columnManager.addWest(federationsColumnWidget);
    columnManager.addWest(serviceProviderColumnWidget);
    columnManager.add(previewCanvas);
    columnManager.setInitialVisible(1);
    return layout;
}

From source file:org.jboss.as.console.client.standalone.ServerMgmtApplicationView.java

License:Open Source License

public ServerMgmtApplicationView() {
    super();/*from  ww w . j av  a  2 s  . co m*/

    layout = new SplitLayoutPanel(10);

    contentCanvas = new LayoutPanel();
    contentCanvas.getElement().setAttribute("role", "main");
    //contentCanvas.getElement().setId("rhs-content-area");

    lhsNavigation = new LHSStandaloneNavigation();

    Widget nav = lhsNavigation.asWidget();
    nav.getElement().setAttribute("role", "navigation");

    layout.addWest(nav, 197);
    layout.add(contentCanvas);

}

From source file:org.jboss.as.console.client.v3.deployment.DomainDeploymentFinderView.java

License:Open Source License

@Inject
@SuppressWarnings("unchecked")
public DomainDeploymentFinderView(final PlaceManager placeManager, final DispatchAsync dispatcher,
        final Dispatcher circuit, final PreviewContentFactory contentFactory) {

    this.contentFactory = contentFactory;
    contentCanvas = new LayoutPanel();
    layout = new SplitLayoutPanel(2);
    columnManager = new ColumnManager(layout, DEPLOYMENT);

    // ------------------------------------------------------ subdeployments

    subdeploymentColumn = new SubdeploymentColumn(placeManager, circuit, columnManager, 4,
            NameTokens.DomainDeploymentFinder);
    subdeploymentColumnWidget = subdeploymentColumn.asWidget();

    // ------------------------------------------------------ assignments

    assignmentColumn = new FinderColumn<>(DEPLOYMENT, "Deployment", new FinderColumn.Display<Assignment>() {
        @Override/*from   w  ww.  j a v a 2 s.c  om*/
        public boolean isFolder(final Assignment data) {
            return data.isEnabled() && data.hasDeployment() && data.getDeployment().hasSubdeployments();
        }

        @Override
        public SafeHtml render(final String baseCss, final Assignment data) {
            return Templates.ITEMS.item(baseCss, data.getName(), ""); // tooltip is defined below
        }

        @Override
        public String rowCss(final Assignment data) {
            if (!data.hasDeployment()) {
                return "error";
            } else if (!data.isEnabled()) {
                return "paused";
            }
            return "good";
        }
    }, new ProvidesKey<Assignment>() {
        @Override
        public Object getKey(final Assignment item) {
            return item.getName() + ":" + item.isEnabled();
        }
    }, NameTokens.DomainDeploymentFinder, 999);
    assignmentColumn.setShowSize(true);

    assignmentColumn.setTopMenuItems(new MenuDelegate<>(Console.CONSTANTS.common_label_add(),
            item -> presenter.launchAddAssignmentWizard(serverGroupColumn.getSelectedItem().getName()),
            Operation));

    //noinspection Convert2MethodRef
    MenuDelegate<Assignment> enableDisableDelegate = new MenuDelegate<Assignment>(
            Console.CONSTANTS.common_label_enOrDisable(), item -> presenter.verifyEnableDisableAssignment(item),
            Operation) {
        @Override
        public String render(final Assignment data) {
            return data.isEnabled() ? Console.CONSTANTS.common_label_disable()
                    : Console.CONSTANTS.common_label_enable();
        }
    };
    //noinspection Convert2MethodRef
    assignmentColumn.setMenuItems(
            new MenuDelegate<>(
                    Console.CONSTANTS.common_label_view(), item -> presenter.showDetails(item), Navigation),
            enableDisableDelegate,
            new MenuDelegate<>(Console.CONSTANTS.unassign(),
                    item -> Feedback.confirm(Console.CONSTANTS.common_label_areYouSure(),
                            Console.MESSAGES.unassignAssignment(item.getName()), isConfirmed -> {
                                if (isConfirmed) {
                                    presenter.modifyAssignment(item, REMOVE,
                                            Console.MESSAGES.AssignmentSuccessfullyUnassigned(item.getName()));
                                }
                            })));

    assignmentColumn.setFilter((item, token) -> item.getDeployment().getName().contains(token));

    assignmentColumn.setTooltipDisplay(Templates::assignmentTooltip);
    assignmentColumn
            .setPreviewFactory((data, callback) -> callback.onSuccess(Templates.assignmentPreview(data)));

    assignmentColumn.addSelectionChangeHandler(selectionChangeEvent -> {
        columnManager.reduceColumnsTo(3);
        if (assignmentColumn.hasSelectedItem()) {
            columnManager.updateActiveSelection(assignmentColumnWidget);
            Assignment assignment = assignmentColumn.getSelectedItem();
            if (assignment.isEnabled() && assignment.hasDeployment()) {
                Deployment deployment = assignment.getDeployment();
                circuit.dispatch(new SelectDeploymentAction(deployment));
                if (deployment.hasSubdeployments()) {
                    columnManager.appendColumn(subdeploymentColumnWidget);
                    subdeploymentColumn.updateFrom(deployment.getSubdeployments());
                }
            }
        }
    });
    assignmentColumnWidget = assignmentColumn.asWidget();

    // ------------------------------------------------------ server group

    serverGroupColumn = new FinderColumn<>(DEPLOYMENT, "Server Group",
            new FinderColumn.Display<ServerGroupRecord>() {

                @Override
                public boolean isFolder(ServerGroupRecord data) {
                    return true;
                }

                @Override
                public SafeHtml render(String baseCss, ServerGroupRecord data) {
                    return Templates.ITEMS.item(baseCss, data.getName(),
                            data.getName() + " (Profile " + data.getProfileName() + ")");
                }

                @Override
                public String rowCss(ServerGroupRecord data) {
                    return "";
                }
            }, new ProvidesKey<ServerGroupRecord>() {
                @Override
                public Object getKey(ServerGroupRecord item) {
                    return item.getName();
                }
            }, NameTokens.DomainDeploymentFinder);
    serverGroupColumn.setShowSize(true);

    serverGroupColumn.setFilter((item, token) -> item.getName().contains(token));

    serverGroupColumn.setPreviewFactory((data, callback) -> {
        ResourceAddress address = new ResourceAddress().add("server-group", data.getName());
        Operation op = new Operation.Builder(ModelDescriptionConstants.READ_CHILDREN_NAMES_OPERATION, address)
                .param(CHILD_TYPE, "deployment").build();
        dispatcher.execute(new DMRAction(op), new AsyncCallback<DMRResponse>() {
            @Override
            public void onFailure(final Throwable caught) {
                callback.onSuccess(Templates.serverGroupPreview(data, -1));
            }

            @Override
            public void onSuccess(final DMRResponse response) {
                ModelNode result = response.get();
                if (!result.hasDefined(OUTCOME) || result.isFailure()) {
                    callback.onSuccess(Templates.serverGroupPreview(data, -1));
                } else {
                    int deployments = result.get(RESULT).asList().size();
                    callback.onSuccess(Templates.serverGroupPreview(data, deployments));
                }
            }
        });
    });

    serverGroupColumn.addSelectionChangeHandler(event -> {
        columnManager.reduceColumnsTo(2);
        if (serverGroupColumn.hasSelectedItem()) {
            columnManager.updateActiveSelection(serverGroupColumnWidget);
            columnManager.appendColumn(assignmentColumnWidget);
            presenter.loadAssignments(serverGroupColumn.getSelectedItem().getName());
        }
    });
    serverGroupColumnWidget = serverGroupColumn.asWidget();

    // ------------------------------------------------------ (unassigned) content

    //noinspection Convert2MethodRef
    contentColumn = new ContentColumn(Console.CONSTANTS.allContent(), columnManager,
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_add(),
                    item -> presenter.launchAddContentWizard(), Operation).setOperationAddress("/deployment=*",
                            "add"),
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_assign(),
                    item -> presenter.launchAssignContentDialog(item, false), Operation)
                            .setOperationAddress("/deployment=*", "add"),
            new MenuDelegate<Content>(Console.CONSTANTS.unassign(),
                    item -> presenter.launchUnassignContentDialog(item), Operation)
                            .setOperationAddress("/deployment=*", "remove"),
            new MenuDelegate<>(Console.CONSTANTS.common_label_replace(),
                    item -> presenter.launchReplaceContentWizard(item), Operation),
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_delete(), item -> {
                if (!item.getAssignments().isEmpty()) {
                    String serverGroups = "\t- " + Joiner.on("\n\t- ")
                            .join(Lists.transform(item.getAssignments(), Assignment::getServerGroup));
                    Console.error(Console.MESSAGES.deploymentInUse(item.getName()),
                            Console.MESSAGES.assignedToServerGroups(item.getName(), serverGroups));
                } else {
                    Feedback.confirm(Console.CONSTANTS.common_label_areYouSure(),
                            Console.MESSAGES.deleteTitle(item.getName()), isConfirmed -> {
                                if (isConfirmed) {
                                    presenter.removeContent(item, false);
                                }
                            });
                }
            }, Operation).setOperationAddress("/deployment=*", "remove"),
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_explode(), item -> {
                // when archive=undefined, then it is an archive
                boolean archive = item.get("content").get(0).hasDefined("archive")
                        ? item.get("content").get(0).get("archive").asBoolean()
                        : true;
                boolean managed = item.get("managed").asBoolean();
                if (!archive) {
                    Console.warning("Cannot explode an already exploded deployment");
                } else if (!managed) {
                    Console.warning("Cannot explode an unmanaged deployment");
                } else {
                    Feedback.confirm(Console.CONSTANTS.common_label_areYouSure(),
                            Console.MESSAGES.explodeTitle(item.getName()), isConfirmed -> {
                                if (isConfirmed) {
                                    presenter.explodeContent(item);
                                }
                            });
                }
            }, Operation).setOperationAddress("/deployment=*", "explode"),
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_browseContent(), item -> {
                // when archive=undefined, then it is an archive
                boolean archive = item.get("content").get(0).hasDefined("archive")
                        ? item.get("content").get(0).get("archive").asBoolean()
                        : true;
                boolean managed = item.get("managed").asBoolean();
                if (archive) {
                    Console.warning("Cannot read content from an unexploded deployment");
                } else if (!managed) {
                    Console.warning("Cannot read content from an unmanaged deployment");
                } else {
                    presenter.browseContent(item.getName());
                }
            }, Operation).setOperationAddress("/deployment=*", "browse-content"));

    contentColumn.setFilter(
            (item, token) -> item.getName().contains(token) || item.getRuntimeName().contains(token));

    contentColumnWidget = contentColumn.asWidget();

    //noinspection Convert2MethodRef
    unassignedColumn = new ContentColumn(Console.CONSTANTS.unassigned(), columnManager, null,
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_assign(),
                    item -> presenter.launchAssignContentDialog(item, true), Operation)
                            .setOperationAddress("/deployment=*", "add"),
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_delete(),
                    item -> Feedback.confirm(Console.CONSTANTS.common_label_areYouSure(),
                            Console.MESSAGES.deleteTitle(item.getName()), isConfirmed -> {
                                if (isConfirmed) {
                                    presenter.removeContent(item, true);
                                }
                            }),
                    Operation).setOperationAddress("/deployment=*", "remove"),
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_explode(), item -> {
                // when archive=undefined, then it is an archive
                boolean archive = item.get("content").get(0).hasDefined("archive")
                        ? item.get("content").get(0).get("archive").asBoolean()
                        : true;
                boolean managed = item.get("managed").asBoolean();
                if (!archive) {
                    Console.warning(Console.CONSTANTS.deploymentCannotExplodeExploded());
                } else if (!managed) {
                    Console.warning(Console.CONSTANTS.deploymentCannotExplodeUnmanaged());
                } else {
                    Feedback.confirm(Console.CONSTANTS.common_label_areYouSure(),
                            Console.MESSAGES.explodeTitle(item.getName()), isConfirmed -> {
                                if (isConfirmed) {
                                    presenter.explodeContent(item);
                                }
                            });
                }
            }, Operation).setOperationAddress("/deployment=*", ModelDescriptionConstants.EXPLODE),
            new MenuDelegate<Content>(Console.CONSTANTS.common_label_browseContent(), item -> {
                // when archive=undefined, then it is an archive
                boolean archive = item.get("content").get(0).hasDefined("archive")
                        ? item.get("content").get(0).get("archive").asBoolean()
                        : true;
                boolean managed = item.get("managed").asBoolean();
                if (archive) {
                    Console.warning(Console.CONSTANTS.deploymentCannotReadUnexploded());
                } else if (!managed) {
                    Console.warning(Console.CONSTANTS.deploymentCannotReadUnmanaged());
                } else {
                    presenter.browseContent(item.getName());
                }
            }, Operation).setOperationAddress("/deployment=*", ModelDescriptionConstants.BROWSE_CONTENT));

    unassignedColumn.setFilter(
            (item, token) -> item.getName().contains(token) || item.getRuntimeName().contains(token));

    unassignedColumnWidget = unassignedColumn.asWidget();

    // ------------------------------------------------------ browse by

    BrowseByItem contentRepositoryItem = new BrowseByItem("Content Repository",
            PreviewContent.INSTANCE.content_repository(), () -> {
                columnManager.appendColumn(contentColumnWidget);
                presenter.loadContentRepository();
            });
    BrowseByItem unassignedContentItem = new BrowseByItem(Console.CONSTANTS.unassignedContent(),
            PreviewContent.INSTANCE.unassigned_content(), () -> {
                columnManager.appendColumn(unassignedColumnWidget);
                presenter.loadUnassignedContent();
            });
    BrowseByItem serverGroupsItem = new BrowseByItem("Server Groups",
            PreviewContent.INSTANCE.server_group_content(), () -> {
                columnManager.appendColumn(serverGroupColumnWidget);
                presenter.loadServerGroups();
            });

    browseByColumn = new BrowseByColumn(contentFactory, event -> {
        columnManager.reduceColumnsTo(1);
        if (browseByColumn.hasSelectedItem()) {
            columnManager.updateActiveSelection(browseByColumnWidget);
            browseByColumn.getSelectedItem().onSelect().execute();
        } else {
            startupContent(contentFactory);
        }
    }, NameTokens.DomainDeploymentFinder);
    browseByColumnWidget = browseByColumn.asWidget();
    browseByColumn.updateFrom(Arrays.asList(contentRepositoryItem, unassignedContentItem, serverGroupsItem));

    // ------------------------------------------------------ assemble UI

    columnManager.addWest(browseByColumnWidget);
    columnManager.addWest(contentColumnWidget);
    columnManager.addWest(unassignedColumnWidget);
    columnManager.addWest(serverGroupColumnWidget);
    columnManager.addWest(assignmentColumnWidget);
    columnManager.addWest(subdeploymentColumnWidget);
    columnManager.add(contentCanvas);
    columnManager.setInitialVisible(1);
}

From source file:org.jboss.as.console.client.v3.deployment.StandaloneDeploymentFinderView.java

License:Open Source License

@Inject
@SuppressWarnings("unchecked")
public StandaloneDeploymentFinderView(final PlaceManager placeManager, final Dispatcher circuit,
        final PreviewContentFactory contentFactory) {

    contentCanvas = new LayoutPanel();
    layout = new SplitLayoutPanel(2);
    columnManager = new ColumnManager(layout, FinderColumn.FinderId.DEPLOYMENT);

    // ------------------------------------------------------ deployments

    deploymentColumn = new FinderColumn<>(FinderColumn.FinderId.DEPLOYMENT, "Deployment",
            new FinderColumn.Display<Deployment>() {
                @Override/*from  w  w  w  . ja v a  2s .  c  o  m*/
                public boolean isFolder(final Deployment data) {
                    return data.hasSubdeployments();
                }

                @Override
                public SafeHtml render(final String baseCss, final Deployment data) {
                    return Templates.ITEMS.item(baseCss, data.getName(), ""); // tooltip is defined below
                }

                @Override
                public String rowCss(final Deployment data) {
                    if (!data.isEnabled()) {
                        return "paused";
                    } else if (data.getStatus() == Deployment.Status.FAILED) {
                        return "error"; // TODO custom style, check for other states
                    } else {
                        return "good";
                    }
                }
            }, new ProvidesKey<Deployment>() {
                @Override
                public Object getKey(final Deployment item) {
                    return item.getName();
                }
            }, NameTokens.StandaloneDeploymentFinder, 999);

    deploymentColumn.setFilter(
            (item, token) -> item.getName().contains(token) || item.getRuntimeName().contains(token));

    deploymentColumn.setTopMenuItems(new MenuDelegate<>(Console.CONSTANTS.common_label_add(),
            item -> presenter.launchAddDeploymentWizard(), Operation));

    //noinspection Convert2MethodRef
    MenuDelegate<Deployment> enableDisableDelegate = new MenuDelegate<Deployment>(
            Console.CONSTANTS.common_label_enOrDisable(), item -> presenter.verifyEnableDisableDeployment(item),
            Operation) {
        @Override
        public String render(final Deployment data) {
            return data.isEnabled() ? Console.CONSTANTS.common_label_disable()
                    : Console.CONSTANTS.common_label_enable();
        }
    };
    //noinspection Convert2MethodRef
    deploymentColumn.setMenuItems(
            new MenuDelegate<>(Console.CONSTANTS.common_label_view(), item -> presenter.showDetails(),
                    Navigation),
            enableDisableDelegate, new MenuDelegate<>(Console.CONSTANTS.common_label_replace(), item -> {
                if (!item.isManaged()) {
                    Console.warning(Console.CONSTANTS.deploymentCannotReplaceUnmanaged());
                } else {
                    presenter.launchReplaceDeploymentWizard(item);
                }
            }, Operation),
            new MenuDelegate<>(Console.CONSTANTS.common_label_delete(),
                    item -> presenter.verifyRemoveDeployment(item), Operation),
            new MenuDelegate<>(Console.CONSTANTS.common_label_explode(), new ContextualCommand<Deployment>() {

                @Override
                public void executeOn(final Deployment item) {
                    // when archive=undefined, then it is an archive
                    if (item.isEnabled()) {
                        Console.warning(Console.CONSTANTS.deploymentCannotExplodeEnabled());
                    } else if (!item.isArchive()) {
                        Console.warning(Console.CONSTANTS.deploymentCannotExplodeExploded());
                    } else if (!item.isManaged()) {
                        Console.warning(Console.CONSTANTS.deploymentCannotExplodeUnmanaged());
                    } else {
                        Feedback.confirm(Console.CONSTANTS.common_label_areYouSure(),
                                Console.MESSAGES.explodeTitle(item.getName()), isConfirmed -> {
                                    if (isConfirmed) {
                                        presenter.explodeContent(item);
                                    }
                                });
                    }
                }

            }, Operation).setOperationAddress("/deployment=*", ModelDescriptionConstants.EXPLODE),
            new MenuDelegate<>(Console.CONSTANTS.common_label_browseContent(),
                    new ContextualCommand<Deployment>() {

                        @Override
                        public void executeOn(final Deployment item) {
                            if (item.isArchive()) {
                                Console.warning(Console.CONSTANTS.deploymentCannotReadUnexploded());
                            } else if (!item.isManaged()) {
                                Console.warning(Console.CONSTANTS.deploymentCannotReadUnmanaged());
                            } else {
                                presenter.browseContent();
                            }
                        }
                    }, Operation).setOperationAddress("/deployment=*",
                            ModelDescriptionConstants.BROWSE_CONTENT));

    deploymentColumn.setTooltipDisplay(Templates::deploymentTooltip);
    deploymentColumn
            .setPreviewFactory((data, callback) -> callback.onSuccess(Templates.deploymentPreview(data)));

    deploymentColumn.addSelectionChangeHandler(event -> {
        columnManager.reduceColumnsTo(1);
        if (deploymentColumn.hasSelectedItem()) {
            columnManager.updateActiveSelection(deploymentColumnWidget);
            Deployment deployment = deploymentColumn.getSelectedItem();
            if (deployment.hasSubdeployments()) {
                columnManager.appendColumn(subdeploymentColumnWidget);
                subdeploymentColumn.updateFrom(deployment.getSubdeployments());
            }
            circuit.dispatch(new SelectDeploymentAction(deployment));
        } else {
            startupContent(contentFactory);
        }
    });

    // ------------------------------------------------------ subdeployments

    subdeploymentColumn = new SubdeploymentColumn(placeManager, circuit, columnManager, 2,
            NameTokens.StandaloneDeploymentFinder);

    // ------------------------------------------------------ setup UI

    deploymentColumnWidget = deploymentColumn.asWidget();
    subdeploymentColumnWidget = subdeploymentColumn.asWidget();

    columnManager.addWest(deploymentColumnWidget);
    columnManager.addWest(subdeploymentColumnWidget);
    columnManager.add(contentCanvas);
    columnManager.setInitialVisible(1);
}

From source file:org.rstudio.studio.client.workbench.views.vcs.dialog.HistoryPanel.java

License:Open Source License

protected HistoryPanel(HistoryBranchToolbarButton branchToolbarButton,
        CommitFilterToolbarButton commitFilterToolbarButton, Commands commands, HistoryStrategy strategy) {
    Styles styles = GWT.<Resources>create(Resources.class).styles();
    commitTable_ = new CommitListTable(styles, strategy.idColumnName());
    splitPanel_ = new SplitLayoutPanel(4);
    pager_ = strategy.getPager();/*w  ww  .j  a  v  a 2  s  .com*/
    branchToolbarButton_ = branchToolbarButton;
    commitFilterToolbarButton_ = commitFilterToolbarButton;

    initWidget(GWT.<Binder>create(Binder.class).createAndBindUi(this));

    commitDetail_.setIdDesc(strategy.idColumnName());
    commitDetail_.setScrollPanel(detailScrollPanel_);

    topToolbar_.addStyleName(styles.toolbar());

    switchViewButton_ = new LeftRightToggleButton("Changes", "History", false);
    topToolbar_.addLeftWidget(switchViewButton_);
    topToolbar_.addLeftWidget(branchToolbarButton_);

    topToolbar_.addLeftWidget(commitFilterToolbarButton_);

    searchText_ = new SearchWidget(new MultiWordSuggestOracle(), new TextBoxWithCue("Search"), null);
    topToolbar_.addRightWidget(searchText_);
    topToolbar_.addRightSeparator();

    refreshButton_ = new ToolbarButton("Refresh", commands.vcsRefresh().getImageResource(),
            (ClickHandler) null);
    topToolbar_.addRightWidget(refreshButton_);

    topToolbar_.addRightSeparator();

    topToolbar_.addRightWidget(commands.vcsPull().createToolbarButton());

    pager_.setDisplay(commitTable_);
}

From source file:org.rstudio.studio.client.workbench.views.vcs.dialog.ReviewPanel.java

License:Open Source License

@Inject
public ReviewPanel(ChangelistTablePresenter changelist, LineTableView diffPane,
        ConsoleBarFramePanel consoleBarFramePanel, final Commands commands, FileTypeRegistry fileTypeRegistry,
        BranchToolbarButton branchToolbarButton) {
    fileTypeRegistry_ = fileTypeRegistry;
    splitPanel_ = new SplitLayoutPanel(4);
    splitPanelCommit_ = new SplitLayoutPanel(4);

    commitButton_ = new ThemedButton("Commit");
    commitButton_.addStyleName(RES.styles().commitButton());

    changelist_ = changelist.getView();/* w  w w . j a  v  a 2  s.c om*/
    lines_ = diffPane;
    lines_.getElement().setTabIndex(-1);

    Widget widget = GWT.<Binder>create(Binder.class).createAndBindUi(this);
    consoleBarFramePanel.setWidget(widget);

    initWidget(consoleBarFramePanel);

    fileIcon_.setResource(RES.blankFileIcon());
    fileIcon_.addStyleName(RES.styles().fileIcon());

    topToolbar_.addStyleName(RES.styles().toolbar());

    switchViewButton_ = new LeftRightToggleButton("Changes", "History", true);
    topToolbar_.addLeftWidget(switchViewButton_);

    topToolbar_.addLeftWidget(branchToolbarButton);

    stageAllFilesButton_ = topToolbar_
            .addLeftWidget(new ToolbarButton("Stage All Files", RES.stageAllFiles(), (ClickHandler) null));

    topToolbar_.addLeftSeparator();

    ToolbarPopupMenu discardMenu = new ToolbarPopupMenu();
    discardSelectedFiles_ = new ClickCommand();
    discardAllFiles_ = new ClickCommand();
    discardMenu.addItem(new MenuItem("Discard Selected", discardSelectedFiles_));
    discardMenu.addItem(new MenuItem("Discard All Files", discardAllFiles_));
    topToolbar_.addLeftWidget(new ToolbarButton("Discard", RES.discard(), discardMenu));

    topToolbar_.addLeftSeparator();

    ignoreButton_ = topToolbar_.addLeftWidget(new ToolbarButton("Ignore", RES.ignore(), (ClickHandler) null));

    topToolbar_.addRightWidget(
            new ToolbarButton("Refresh", commands.vcsRefresh().getImageResource(), new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    changelist_.showProgress();
                    commands.vcsRefresh().execute();
                }
            }));

    topToolbar_.addRightSeparator();

    topToolbar_.addRightWidget(
            new ToolbarButton("Pull", commands.vcsPull().getImageResource(), commands.vcsPull()));

    topToolbar_.addRightSeparator();

    topToolbar_.addRightWidget(
            new ToolbarButton("Push", commands.vcsPush().getImageResource(), commands.vcsPush()));

    diffToolbar_.addStyleName(RES.styles().toolbar());
    diffToolbar_.addStyleName(RES.styles().diffToolbar());

    stageAllButton_ = diffToolbar_
            .addLeftWidget(new ToolbarButton("Stage All", RES.stage(), (ClickHandler) null));
    diffToolbar_.addLeftSeparator();
    discardAllButton_ = diffToolbar_
            .addLeftWidget(new ToolbarButton("Discard All", RES.discard(), (ClickHandler) null));

    unstageAllButton_ = diffToolbar_
            .addLeftWidget(new ToolbarButton("Unstage All", RES.discard(), (ClickHandler) null));
    unstageAllButton_.setVisible(false);

    unstagedCheckBox_.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
        @Override
        public void onValueChange(ValueChangeEvent<Boolean> e) {
            ValueChangeEvent.fire(stagedCheckBox_, stagedCheckBox_.getValue());
        }
    });

    stagedCheckBox_.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
        @Override
        public void onValueChange(ValueChangeEvent<Boolean> e) {
            stageAllButton_.setVisible(!e.getValue());
            discardAllButton_.setVisible(!e.getValue());
            unstageAllButton_.setVisible(e.getValue());
            diffToolbar_.invalidateSeparators();
        }
    });

    listBoxAdapter_ = new ListBoxAdapter(contextLines_);

    FontSizer.applyNormalFontSize(commitMessage_);
}

From source file:org.rstudio.studio.client.workbench.views.vcs.git.dialog.GitReviewPanel.java

License:Open Source License

@Inject
public GitReviewPanel(GitChangelistTablePresenter changelist, LineTableView diffPane, final Commands commands,
        FileTypeRegistry fileTypeRegistry, CheckoutBranchToolbarButton branchToolbarButton) {
    fileTypeRegistry_ = fileTypeRegistry;
    splitPanel_ = new SplitLayoutPanel(4);
    splitPanelCommit_ = new SplitLayoutPanel(4);

    commitButton_ = new ThemedButton("Commit");
    commitButton_.addStyleName(RES.styles().commitButton());

    changelist_ = changelist.getView();//w w  w  .java  2s.  c  o  m
    lines_ = diffPane;
    lines_.getElement().setTabIndex(-1);

    overrideSizeWarning_ = new SizeWarningWidget("diff");

    changelist.setSelectFirstItemByDefault(true);

    Widget widget = GWT.<Binder>create(Binder.class).createAndBindUi(this);
    initWidget(widget);

    topToolbar_.addStyleName(RES.styles().toolbar());

    switchViewButton_ = new LeftRightToggleButton("Changes", "History", true);
    topToolbar_.addLeftWidget(switchViewButton_);

    topToolbar_.addLeftWidget(branchToolbarButton);

    stageFilesButton_ = topToolbar_.addLeftWidget(new ToolbarButton("Stage", RES.stage(), (ClickHandler) null));

    topToolbar_.addLeftSeparator();

    revertFilesButton_ = topToolbar_.addLeftWidget(
            new ToolbarButton("Revert", commands.vcsRevert().getImageResource(), (ClickHandler) null));

    ignoreButton_ = topToolbar_.addLeftWidget(new ToolbarButton("Ignore", RES.ignore(), (ClickHandler) null));

    topToolbar_.addRightWidget(
            new ToolbarButton("Refresh", commands.vcsRefresh().getImageResource(), new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    changelist_.showProgress();
                    commands.vcsRefresh().execute();
                }
            }));

    topToolbar_.addRightSeparator();

    topToolbar_.addRightWidget(commands.vcsPull().createToolbarButton());

    topToolbar_.addRightSeparator();

    topToolbar_.addRightWidget(commands.vcsPush().createToolbarButton());

    diffToolbar_.addStyleName(RES.styles().toolbar());
    diffToolbar_.addStyleName(RES.styles().diffToolbar());

    toolbarWrapper_.setCellWidth(diffToolbar_, "100%");

    stageAllButton_ = diffToolbar_
            .addLeftWidget(new ToolbarButton("Stage All", RES.stage(), (ClickHandler) null));
    diffToolbar_.addLeftSeparator();
    discardAllButton_ = diffToolbar_
            .addLeftWidget(new ToolbarButton("Discard All", RES.discard(), (ClickHandler) null));

    unstageAllButton_ = diffToolbar_
            .addLeftWidget(new ToolbarButton("Unstage All", RES.discard(), (ClickHandler) null));
    unstageAllButton_.setVisible(false);

    unstagedCheckBox_.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
        @Override
        public void onValueChange(ValueChangeEvent<Boolean> e) {
            ValueChangeEvent.fire(stagedCheckBox_, stagedCheckBox_.getValue());
        }
    });

    stagedCheckBox_.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
        @Override
        public void onValueChange(ValueChangeEvent<Boolean> e) {
            stageAllButton_.setVisible(!e.getValue());
            discardAllButton_.setVisible(!e.getValue());
            unstageAllButton_.setVisible(e.getValue());
            diffToolbar_.invalidateSeparators();
        }
    });

    commitMessage_.getElement().setAttribute("spellcheck", "false");

    listBoxAdapter_ = new ListBoxAdapter(contextLines_);

    FontSizer.applyNormalFontSize(commitMessage_);

    new WidgetHandlerRegistration(this) {
        @Override
        protected HandlerRegistration doRegister() {
            return Event.addNativePreviewHandler(new NativePreviewHandler() {
                @Override
                public void onPreviewNativeEvent(NativePreviewEvent event) {
                    NativeEvent nativeEvent = event.getNativeEvent();
                    if (event.getTypeInt() == Event.ONKEYDOWN
                            && KeyboardShortcut.getModifierValue(nativeEvent) == KeyboardShortcut.CTRL) {
                        switch (nativeEvent.getKeyCode()) {
                        case KeyCodes.KEY_DOWN:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, getLineScroll(diffScroll_), 0);
                            break;
                        case KeyCodes.KEY_UP:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, -getLineScroll(diffScroll_), 0);
                            break;
                        case KeyCodes.KEY_PAGEDOWN:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, getPageScroll(diffScroll_), 0);
                            break;
                        case KeyCodes.KEY_PAGEUP:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, -getPageScroll(diffScroll_), 0);
                            break;
                        }
                    }
                }
            });
        }
    };
}

From source file:org.rstudio.studio.client.workbench.views.vcs.svn.dialog.SVNReviewPanel.java

License:Open Source License

@Inject
public SVNReviewPanel(SVNChangelistTablePresenter changelist, LineTableView diffPane, Commands commands) {
    commands_ = commands;//from  ww  w  . j  ava 2  s . c  om
    splitPanel_ = new SplitLayoutPanel(4);

    changelist_ = changelist.getView();
    lines_ = diffPane;
    lines_.getElement().setTabIndex(-1);
    lines_.hideStageCommands();

    overrideSizeWarning_ = new SizeWarningWidget("diff");

    changelist.setSelectFirstItemByDefault(true);

    Widget widget = GWT.<Binder>create(Binder.class).createAndBindUi(this);
    initWidget(widget);

    topToolbar_.addStyleName(RES.styles().toolbar());

    switchViewButton_ = new LeftRightToggleButton("Changes", "History", true);
    switchViewButton_.getElement().getStyle().setMarginRight(8, Unit.PX);
    topToolbar_.addLeftWidget(switchViewButton_);

    topToolbar_.addLeftWidget(commands.vcsAddFiles().createToolbarButton());
    topToolbar_.addLeftWidget(commands.vcsRemoveFiles().createToolbarButton());
    topToolbar_.addLeftSeparator();
    topToolbar_.addLeftWidget(commands.vcsRevert().createToolbarButton());
    topToolbar_.addLeftWidget(commands.vcsIgnore().createToolbarButton());
    topToolbar_.addLeftSeparator();
    topToolbar_.addLeftWidget(commands.vcsResolve().createToolbarButton());
    topToolbar_.addLeftSeparator();
    topToolbar_.addLeftWidget(commands.vcsCommit().createToolbarButton());

    topToolbar_.addRightWidget(
            new ToolbarButton("Refresh", commands.vcsRefresh().getImageResource(), new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    changelist_.showProgress();
                    commands_.vcsRefresh().execute();
                }
            }));

    commands.vcsPull().setButtonLabel("Update");
    commands.vcsPull().setMenuLabel("Update");
    topToolbar_.addRightWidget(commands.vcsPull().createToolbarButton());

    diffToolbar_.addStyleName(RES.styles().toolbar());
    diffToolbar_.addStyleName(RES.styles().diffToolbar());

    diffToolbar_.addLeftSeparator();
    discardAllButton_ = diffToolbar_
            .addLeftWidget(new ToolbarButton("Discard All", RES.discard(), (ClickHandler) null));

    listBoxAdapter_ = new ListBoxAdapter(contextLines_);

    new WidgetHandlerRegistration(this) {
        @Override
        protected HandlerRegistration doRegister() {
            return Event.addNativePreviewHandler(new NativePreviewHandler() {
                @Override
                public void onPreviewNativeEvent(NativePreviewEvent event) {
                    NativeEvent nativeEvent = event.getNativeEvent();
                    if (event.getTypeInt() == Event.ONKEYDOWN
                            && KeyboardShortcut.getModifierValue(nativeEvent) == KeyboardShortcut.CTRL) {
                        switch (nativeEvent.getKeyCode()) {
                        case KeyCodes.KEY_DOWN:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, getLineScroll(diffScroll_), 0);
                            break;
                        case KeyCodes.KEY_UP:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, -getLineScroll(diffScroll_), 0);
                            break;
                        case KeyCodes.KEY_PAGEDOWN:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, getPageScroll(diffScroll_), 0);
                            break;
                        case KeyCodes.KEY_PAGEUP:
                            nativeEvent.preventDefault();
                            scrollBy(diffScroll_, -getPageScroll(diffScroll_), 0);
                            break;
                        }
                    }
                }
            });
        }
    };
}