You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2011/02/04 18:34:28 UTC

svn commit: r1067233 [5/7] - in /cxf/trunk: distribution/src/main/release/samples/ distribution/src/main/release/samples/logbrowser/ distribution/src/main/release/samples/logbrowser/src/ distribution/src/main/release/samples/logbrowser/src/demo/ distri...

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/BindStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/BindStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/DialogBindStrategyImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/DialogBindStrategyImpl.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/DialogBindStrategyImpl.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/DialogBindStrategyImpl.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui;
+
+import javax.annotation.Nonnull;
+
+import com.google.gwt.user.client.ui.DialogBox;
+import com.google.gwt.user.client.ui.HasWidgets;
+import com.google.inject.Singleton;
+
+@Singleton
+public class DialogBindStrategyImpl implements BindStrategy {
+    
+    public void bind(@Nonnull final HasWidgets container, @Nonnull final View view) {
+        assert view instanceof DialogBox;
+
+        ((DialogBox) view).center();
+    }
+
+    public void unbind(@Nonnull final View view) {
+        assert view instanceof DialogBox;
+
+        ((DialogBox) view).hide();
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/DialogBindStrategyImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/DialogBindStrategyImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/ErrorDialog.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/ErrorDialog.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/ErrorDialog.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/ErrorDialog.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,161 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyPressEvent;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwtexpui.user.client.PluginSafePopupPanel;
+import com.google.inject.Inject;
+
+import org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserConstans;
+import org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserResources;
+
+/**
+ * A dialog box showing an error message, when bad things happen.
+ */
+public class ErrorDialog extends PluginSafePopupPanel {
+    
+    @Nonnull
+    private final LogBrowserResources resources;
+
+    @Nonnull
+    private final LogBrowserConstans contants;
+
+    @Nonnull
+    private final Button closeButton;
+
+    @Inject
+    protected ErrorDialog(@Nonnull final LogBrowserResources resources,
+                          @Nonnull final LogBrowserConstans contants) {
+        super(/* auto hide */false, /* modal */true);
+
+        this.resources = resources;
+        this.contants = contants;
+        this.closeButton = new Button();
+    }
+
+    /**
+     * Create a dialog box to nicely format an exception.
+     */
+    public void setException(@Nonnull final Throwable exception) {
+        String errorClassName = exception.getClass().getName();
+
+        // Remove unwanted package (which begins on 'java.lang.' or 'org.apache.cxf.')
+        if (errorClassName.startsWith("java.lang.")) {
+            errorClassName = errorClassName.substring("java.lang.".length());
+        } else if (errorClassName.startsWith("org.apache.cxf.")) {
+            errorClassName = errorClassName.substring(errorClassName.lastIndexOf('.') + 1);
+        }
+
+        // Remove unwanted suffixes from class name (i.e. 'Exception', 'Error')
+        if (errorClassName.endsWith("Exception")) {
+            errorClassName = errorClassName.substring(0, errorClassName.length() - "Exception".length());
+        } else if (errorClassName.endsWith("Error")) {
+            errorClassName = errorClassName.substring(0, errorClassName.length() - "Error".length());
+        }
+
+        initializeLayout(errorClassName, exception.getMessage());
+    }
+    
+    @Override
+    public void center() {
+        show();
+        closeButton.setFocus(true);
+    }
+
+    private void initializeLayout(@Nonnull final String errorName, @Nullable final String errorMessage) {
+
+        // Create error name and error message labels
+        Label errorNameLabel = new Label(errorName);
+        errorNameLabel.setStyleName(resources.css().errorDialogErrorType());
+
+        Label errorMessageLabel = null;
+        if (errorMessage != null && !"".equals(errorMessage)) {
+            errorMessageLabel = new Label(errorMessage);
+            DOM.setStyleAttribute(errorMessageLabel.getElement(), "whiteSpace", "pre");
+        }
+
+        // Initialize 'close' button
+        closeButton.setText(contants.errorDialogContineButton());
+        closeButton.addClickHandler(new ClickHandler() {
+
+            public void onClick(ClickEvent event) {
+                hide();
+            }
+        });
+        closeButton.addKeyPressHandler(new KeyPressHandler() {
+
+            public void onKeyPress(KeyPressEvent event) {
+
+                /*
+                if the close button is triggered by a key we need to consume the key
+                event, otherwise the key event would be propagated to the parent
+                screen and eventually trigger some unwanted action there after the
+                error dialog was closed
+                 */
+                event.stopPropagation();
+            }
+        });
+
+        // Create 'title' label
+        Label titleLabel = new Label();
+        titleLabel.setStyleName(resources.css().errorDialogTitle());
+        titleLabel.setText(contants.errorDialogTitle());
+
+        // Create wrapper panel for 'error name' and 'error message' labels
+        FlowPanel contentPanel = new FlowPanel();
+        contentPanel.add(errorNameLabel);
+        contentPanel.add(errorMessageLabel);
+
+        // Create wrapper panel for 'close' button
+        FlowPanel buttonsPanel = new FlowPanel();
+        buttonsPanel.setStyleName(resources.css().errorDialogButtons());
+        buttonsPanel.add(closeButton);
+
+        // Create main panel and add all remain widgets
+        FlowPanel centerPanel = new FlowPanel();
+        centerPanel.add(titleLabel);
+        centerPanel.add(contentPanel);
+        centerPanel.add(buttonsPanel);
+
+        // Add styles to window
+        setGlassEnabled(true);
+        getGlassElement().addClassName(resources.css().errorDialogGlass());
+        addStyleName(resources.css().errorDialog());
+
+        // Add main panel
+        add(centerPanel);
+
+        // Set window position
+        int left = Window.getScrollLeft() + 20;
+        int top = Window.getScrollTop() + 20;
+        setPopupPosition(left, top);
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/ErrorDialog.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/ErrorDialog.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/Presenter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/Presenter.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/Presenter.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/Presenter.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui;
+
+import com.google.gwt.user.client.ui.HasWidgets;
+
+public interface Presenter {
+    void go(HasWidgets container);
+
+    void unbind();
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/Presenter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/Presenter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/PresenterWidget.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/PresenterWidget.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/PresenterWidget.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/PresenterWidget.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,27 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui;
+
+import com.google.gwt.user.client.ui.HasWidgets;
+
+public interface PresenterWidget {
+    void bind(HasWidgets container, View view);
+    void unbind();
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/PresenterWidget.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/PresenterWidget.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/View.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/View.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/View.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/View.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui;
+
+import com.google.gwt.user.client.ui.Widget;
+
+public interface View {
+    Widget asWidget();
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/View.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/View.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/WidgetBindStrategyImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/WidgetBindStrategyImpl.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/WidgetBindStrategyImpl.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/WidgetBindStrategyImpl.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui;
+
+import javax.annotation.Nonnull;
+
+import com.google.gwt.user.client.ui.HasWidgets;
+import com.google.inject.Singleton;
+
+@Singleton
+public class WidgetBindStrategyImpl implements BindStrategy {
+
+    public void bind(@Nonnull final HasWidgets container, @Nonnull final View view) {
+        assert view.asWidget() != null;
+
+        container.clear();
+        container.add(view.asWidget());
+    }
+
+    public void unbind(@Nonnull final View view) {
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/WidgetBindStrategyImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/WidgetBindStrategyImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlPresenter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlPresenter.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlPresenter.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlPresenter.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,96 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.accesscontroler;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import com.google.gwt.user.client.ui.HasWidgets;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
+import org.apache.cxf.management.web.browser.client.EventBus;
+import org.apache.cxf.management.web.browser.client.event.RemoteStorageAccessDeniedEvent;
+import org.apache.cxf.management.web.browser.client.event.RemoteStorageAccessDeniedEventHandler;
+import org.apache.cxf.management.web.browser.client.service.settings.Credentials;
+import org.apache.cxf.management.web.browser.client.service.settings.SettingsFacade;
+import org.apache.cxf.management.web.browser.client.service.settings.SettingsFacade.StorageStrategy;
+import org.apache.cxf.management.web.browser.client.ui.BasePresenter;
+import org.apache.cxf.management.web.browser.client.ui.BindStrategy;
+
+@Singleton
+public class AccessControlPresenter extends BasePresenter implements AccessControlView.Presenter {
+
+    @Nonnull
+    private final AccessControlView view;
+
+    @Nonnull
+    private final SettingsFacade settingsFacade;
+
+    @Inject
+    public AccessControlPresenter(@Nonnull final EventBus eventBus,
+            @Nonnull final AccessControlView view,
+            @Nonnull @Named("BindStrategyForAccessControl") final BindStrategy bindStrategy,
+            @Nonnull final SettingsFacade settingsFacade) {
+        super(eventBus, view, bindStrategy);
+
+        this.view = view;
+        this.settingsFacade = settingsFacade;
+
+        this.view.setPresenter(this);
+
+        bind();
+    }
+
+    public void go(@Nonnull final HasWidgets container) {
+        container.clear();
+        container.add(view.asWidget());
+    }
+
+    public void onSignInButtonClicked() {
+        String username = view.getUsername().getValue();
+        String password = view.getPassword().getValue();
+
+        if (isNotEmpty(username) && isNotEmpty(password)) {
+            Boolean rememberMe = view.getRememberMe().getValue();
+            Credentials credentials = new Credentials(username, password);
+            if (rememberMe != null && rememberMe) {
+                settingsFacade.initialize(StorageStrategy.LOCAL_AND_REMOTE, credentials);
+            } else {
+                settingsFacade.initialize(StorageStrategy.REMOTE, credentials);
+            }
+        }
+    }
+
+    private void bind() {
+        registerHandler(eventBus.addHandler(RemoteStorageAccessDeniedEvent.TYPE,
+            new RemoteStorageAccessDeniedEventHandler() {
+
+                public void onRemoteStorageAccessDenied(RemoteStorageAccessDeniedEvent event) {
+                    view.showAccessDeniedMessage();
+                }
+            }));
+    }
+
+    private boolean isNotEmpty(@Nullable final String str) {
+        return str != null && !"".equals(str);
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlPresenter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlPresenter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.accesscontroler;
+
+import com.google.gwt.user.client.ui.HasValue;
+
+import org.apache.cxf.management.web.browser.client.ui.View;
+
+public interface AccessControlView extends View {
+
+    public interface Presenter {
+        
+        void onSignInButtonClicked();
+    }
+
+    HasValue<String> getUsername();
+
+    HasValue<String> getPassword();
+
+    HasValue<Boolean> getRememberMe();
+
+    void showAccessDeniedMessage();
+
+    void setPresenter(Presenter presenter);
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.ui.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.ui.xml?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.ui.xml (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.ui.xml Fri Feb  4 17:34:24 2011
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+  -->
+
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+	xmlns:g='urn:import:com.google.gwt.user.client.ui'>
+
+    <ui:with field='res'
+             type='org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserResources'/>
+
+    <g:HTMLPanel>
+        <form action="#" class="{res.css.accessControlTab}">
+            <fieldset>
+                <legend>Authentication</legend>
+
+                <p>
+                    <label for="copies">Username:</label>
+                    <g:TextBox ui:field='usernameTextBox'></g:TextBox>
+                </p>
+
+                <p>
+                    <label for="copies">Password:</label>
+                    <g:PasswordTextBox ui:field='passwordTextBox'></g:PasswordTextBox>
+                </p>
+
+                <p>
+                    <g:Label ui:field="accessDeniedLabel"
+                             visible="false"
+                             addStyleNames="{res.css.accessControlTabErrorMessage}">
+                        The username or password you entered is incorrect.
+                    </g:Label>
+                </p>
+
+                <p>
+                    <g:CheckBox ui:field='rememberMeCheckBox'
+                                addStyleNames="{res.css.accessControlTabRememberMeCheckbox}">
+                        Remember me
+                    </g:CheckBox>
+                </p>
+
+                <p class="{res.css.accessControlTabSignInButton}">
+                    <g:Button ui:field='signInButton'>
+                        Sign in
+                    </g:Button>
+                </p>
+            </fieldset>
+        </form>
+    </g:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.ui.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.ui.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlView.ui.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlViewImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlViewImpl.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlViewImpl.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlViewImpl.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,100 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.accesscontroler;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+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.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.ui.CheckBox;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HasValue;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.PasswordTextBox;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Singleton;
+
+@Singleton
+public class AccessControlViewImpl extends Composite implements AccessControlView {
+
+    @UiTemplate("AccessControlView.ui.xml")
+    interface AccessControlViewUiBinder extends UiBinder<Widget, AccessControlViewImpl> { }
+
+    private static final AccessControlViewUiBinder UI_BINDER = GWT.create(AccessControlViewUiBinder.class);
+    
+    @UiField @Nonnull
+    TextBox usernameTextBox;
+
+    @UiField @Nonnull
+    CheckBox rememberMeCheckBox;
+
+    @UiField @Nonnull
+    PasswordTextBox passwordTextBox;
+
+    @UiField @Nonnull
+    Label accessDeniedLabel;
+
+    @Nullable
+    private Presenter presenter;
+
+    public AccessControlViewImpl() {
+        initWidget(UI_BINDER.createAndBindUi(this));
+    }
+
+    @UiHandler("signInButton")
+    void onAddButtonClicked(@Nonnull final ClickEvent event) {
+        assert presenter != null;
+        presenter.onSignInButtonClicked();
+    }
+
+    @Nonnull
+    public HasValue<String> getPassword() {
+        return passwordTextBox;
+    }
+
+    @Nonnull
+    public HasValue<Boolean> getRememberMe() {
+        return rememberMeCheckBox;
+    }
+
+    @Nonnull
+    public HasValue<String> getUsername() {
+        return usernameTextBox;
+    }
+
+    public void showAccessDeniedMessage() {
+        accessDeniedLabel.setVisible(true);
+    }
+
+    public void setPresenter(@Nonnull final Presenter presenter) {
+        this.presenter = presenter;
+    }
+
+    @Nonnull
+    public Widget asWidget() {
+        return this;
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlViewImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/accesscontroler/AccessControlViewImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowsePresenter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowsePresenter.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowsePresenter.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowsePresenter.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import javax.annotation.Nonnull;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
+import org.apache.cxf.management.web.browser.client.EventBus;
+import org.apache.cxf.management.web.browser.client.ui.BasePresenter;
+import org.apache.cxf.management.web.browser.client.ui.BindStrategy;
+import org.apache.cxf.management.web.browser.client.ui.common.NavigationHeaderPresenter;
+
+@Singleton
+public class BrowsePresenter extends BasePresenter implements BrowseView.Presenter {
+
+    @Inject
+    public BrowsePresenter(@Nonnull EventBus eventBus,
+                           @Nonnull BrowseView view,
+                           @Nonnull @Named("BindStrategyForBrowser") final BindStrategy bindStrategy,
+                           @Nonnull NavigationHeaderPresenter navigationHeaderPresenter,
+                           @Nonnull NavigationSidebarPresenter navigationSidebarPresenter,
+                           @Nonnull ViewerPresenter viewerPresenter) {
+        super(eventBus, view, bindStrategy);
+
+        navigationHeaderPresenter.go(view.getNaviagationHeaderSlot());
+        navigationSidebarPresenter.go(view.getNaviagationSidebarSlot());
+        viewerPresenter.go(view.getViewerSlot());
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowsePresenter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowsePresenter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,36 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import com.google.gwt.user.client.ui.HasWidgets;
+
+import org.apache.cxf.management.web.browser.client.ui.View;
+
+public interface BrowseView extends View {
+    
+    public interface Presenter {
+    }
+
+    HasWidgets getNaviagationHeaderSlot();
+
+    HasWidgets getNaviagationSidebarSlot();
+
+    HasWidgets getViewerSlot();
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.ui.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.ui.xml?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.ui.xml (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.ui.xml Fri Feb  4 17:34:24 2011
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+  -->
+
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+	xmlns:g='urn:import:com.google.gwt.user.client.ui'>
+
+    <ui:with field='res'
+             type='org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserResources'/>    
+
+	<g:RootLayoutPanel>
+		<g:layer>
+			<g:DockLayoutPanel unit='EM'>
+				<g:north size='2'>
+                    <g:FlowPanel ui:field="navigationHeaderSlot"/>
+				</g:north>
+
+				<g:center>
+					<g:SplitLayoutPanel>
+						<g:west size='192'>
+                            <g:FlowPanel styleName="{res.css.navigationSidebarSlot}"
+                                         ui:field="navigationSidebarSlot"/>
+                        </g:west>
+                        
+                        <g:center>
+                            <g:VerticalPanel>
+                                <g:FlowPanel  styleName="{res.css.viewerSlot}" ui:field="viewerSlot"/>
+                            </g:VerticalPanel>
+                        </g:center>
+					</g:SplitLayoutPanel>
+				</g:center>
+			</g:DockLayoutPanel>
+		</g:layer>
+	</g:RootLayoutPanel>
+
+</ui:UiBinder>
\ No newline at end of file

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.ui.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.ui.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseView.ui.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseViewImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseViewImpl.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseViewImpl.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseViewImpl.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import javax.annotation.Nonnull;
+
+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.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.HasWidgets;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class BrowseViewImpl extends Composite implements BrowseView {
+
+    @UiTemplate("BrowseView.ui.xml")
+    interface BrowseViewUiBinder extends UiBinder<Widget, BrowseViewImpl> { }
+
+    private static final BrowseViewUiBinder UI_BINDER = GWT.create(BrowseViewUiBinder.class);
+
+    @UiField @Nonnull
+    FlowPanel navigationHeaderSlot;
+
+    @UiField @Nonnull
+    FlowPanel navigationSidebarSlot;    
+
+    @UiField @Nonnull
+    FlowPanel viewerSlot;
+
+    @Inject
+    public BrowseViewImpl() {
+        initWidget(UI_BINDER.createAndBindUi(this));
+
+    }
+
+    public HasWidgets getNaviagationHeaderSlot() {
+        return navigationHeaderSlot;
+    }
+
+    public HasWidgets getNaviagationSidebarSlot() {
+        return navigationSidebarSlot;
+    }
+
+    public HasWidgets getViewerSlot() {
+        return viewerSlot;
+    }
+
+    @Nonnull
+    public Widget asWidget() {
+        return this;
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseViewImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/BrowseViewImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaPresenter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaPresenter.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaPresenter.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaPresenter.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,47 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import javax.annotation.Nonnull;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
+import org.apache.cxf.management.web.browser.client.EventBus;
+import org.apache.cxf.management.web.browser.client.ui.BasePresenter;
+import org.apache.cxf.management.web.browser.client.ui.BindStrategy;
+
+@Singleton
+public class EditCriteriaPresenter extends BasePresenter implements EditCriteriaView.Presenter {
+
+    @Nonnull
+    private final EditCriteriaView view;
+
+    @Inject
+    public EditCriteriaPresenter(@Nonnull final EventBus eventBus,
+            @Nonnull final EditCriteriaView view,
+            @Nonnull @Named("BindStrategyForEditCriteria") final BindStrategy bindStrategy) {
+        super(eventBus, view, bindStrategy);
+
+        this.view = view;
+        this.view.setPresenter(this);
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaPresenter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaPresenter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import org.apache.cxf.management.web.browser.client.ui.View;
+
+public interface EditCriteriaView extends View {
+    
+    public interface Presenter {
+
+    }
+
+    void setPresenter(Presenter presenter);
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.ui.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.ui.xml?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.ui.xml (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.ui.xml Fri Feb  4 17:34:24 2011
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+  -->
+
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+	xmlns:g='urn:import:com.google.gwt.user.client.ui'
+    xmlns:dp="urn:import:com.google.gwt.user.datepicker.client" >
+
+    <ui:with field='res'
+             type='org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserResources'/>
+
+	<g:HTMLPanel>
+		<table cellspacing="6">
+			<tr>
+				<td>
+					<g:Label>From:</g:Label>
+				</td>
+                <td>
+					<dp:DateBox></dp:DateBox>
+				</td>
+
+				<td>
+					<g:Label>To:</g:Label>
+				</td>
+                <td>
+					<dp:DateBox></dp:DateBox>
+				</td>
+			</tr>
+            <tr>
+                <td>
+                    <g:Label>Levels:</g:Label>
+                </td>
+                <td>
+                    <g:VerticalPanel>
+                        <g:CheckBox>DEBUG</g:CheckBox>
+                        <g:CheckBox>WARN</g:CheckBox>
+                        <g:CheckBox>INFO</g:CheckBox>
+                        <g:CheckBox>ERROR</g:CheckBox>
+                    </g:VerticalPanel>
+                </td>
+            </tr>
+		</table>
+		<g:FlowPanel addStyleNames="{res.css.editFeedDialogButtons}">
+			<g:Button ui:field="cancelButton">
+                Cancel
+            </g:Button>
+			<g:Button ui:field="saveButton" addStyleNames="{res.css.editFeedDialogAddButton}">
+                Save
+			</g:Button>
+		</g:FlowPanel>
+
+	</g:HTMLPanel>
+
+</ui:UiBinder>

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.ui.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.ui.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaView.ui.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaViewImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaViewImpl.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaViewImpl.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaViewImpl.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import javax.annotation.Nonnull;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+import org.apache.cxf.management.web.browser.client.ui.AbstractDialog;
+import org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserConstans;
+
+@Singleton
+public class EditCriteriaViewImpl extends AbstractDialog implements EditCriteriaView {
+
+    @Nonnull
+    private Form form;
+
+    @Inject
+    public EditCriteriaViewImpl(@Nonnull final LogBrowserConstans constans) {
+        this.form = new Form();
+
+        init(constans.editCriteriaDialogTitle(), form);
+    }
+
+    public Widget asWidget() {
+        return null;
+    }
+
+    public void setPresenter(Presenter presenter) {
+        //TODO implement
+    }
+
+    //TODO remove this internal class - information about how to render view should in BindStrategy 
+    protected static class Form extends Composite {
+
+        @UiTemplate("EditCriteriaView.ui.xml")
+        interface FormViewUiBinder extends UiBinder<Widget, Form> { }
+
+        private static final FormViewUiBinder UI_BINDER = GWT.create(FormViewUiBinder.class);
+
+        public Form() {
+            initWidget(UI_BINDER.createAndBindUi(this));
+        }
+    }
+}
\ No newline at end of file

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaViewImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EditCriteriaViewImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EntryTable.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EntryTable.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EntryTable.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EntryTable.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import org.apache.cxf.management.web.browser.client.service.browser.Entry;
+
+public class EntryTable extends SelectableTable<Entry> {
+    public EntryTable() {
+        super(/* hotkeys enabled */ true);
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EntryTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/EntryTable.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarPresenter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarPresenter.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarPresenter.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarPresenter.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,96 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import java.util.List;
+import javax.annotation.Nonnull;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
+import org.apache.cxf.management.web.browser.client.EventBus;
+import org.apache.cxf.management.web.browser.client.event.ChangedSubscriptionsEvent;
+import org.apache.cxf.management.web.browser.client.event.ChangedSubscriptionsEventHandler;
+import org.apache.cxf.management.web.browser.client.event.GoToEditCriteriaEvent;
+import org.apache.cxf.management.web.browser.client.event.GoToSettingsEvent;
+import org.apache.cxf.management.web.browser.client.event.SelectedSubscriptionEvent;
+import org.apache.cxf.management.web.browser.client.service.settings.SettingsFacade;
+import org.apache.cxf.management.web.browser.client.service.settings.Subscription;
+import org.apache.cxf.management.web.browser.client.ui.BasePresenter;
+import org.apache.cxf.management.web.browser.client.ui.BindStrategy;
+
+@Singleton
+public class NavigationSidebarPresenter extends BasePresenter implements NavigationSidebarView.Presenter {
+
+    @Nonnull
+    private final NavigationSidebarView view;
+
+    @Nonnull
+    private final SettingsFacade settingsManager;
+
+    private List<Subscription> subscriptions;
+
+    @Inject
+    public NavigationSidebarPresenter(@Nonnull final EventBus eventBus,
+            @Nonnull final NavigationSidebarView view,
+            @Nonnull @Named("BindStrategyForNavigationSidebar") final BindStrategy bindStrategy,
+            @Nonnull final SettingsFacade settingsManager) {
+        super(eventBus, view, bindStrategy);
+
+        this.view = view;
+        this.view.setPresenter(this);
+
+        this.settingsManager = settingsManager;
+
+        bind();
+
+        updateSubscriptions();
+    }
+
+    public void onSubcriptionItemClicked(final int row) {
+        assert row >= 0 && row < subscriptions.size();
+        Subscription selectedSubscription = subscriptions.get(row);
+        eventBus.fireEvent(new SelectedSubscriptionEvent(selectedSubscription.getUrl()));
+    }
+
+    public void onManageSubscriptionsButtonClicked() {
+        eventBus.fireEvent(new GoToSettingsEvent());
+    }
+
+    public void onEditCriteriaHyperinkClicked() {
+        eventBus.fireEvent(new GoToEditCriteriaEvent());
+    }
+
+    private void updateSubscriptions() {
+        subscriptions = settingsManager.getSubscriptions();
+        view.setSubscriptions(subscriptions);
+    }
+
+    private void bind() {
+        eventBus.addHandler(ChangedSubscriptionsEvent.TYPE, new ChangedSubscriptionsEventHandler() {
+
+            public void onChangedSubscriptions(ChangedSubscriptionsEvent event) {
+                updateSubscriptions();
+            }
+        });
+
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarPresenter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarPresenter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import java.util.List;
+
+import org.apache.cxf.management.web.browser.client.service.settings.Subscription;
+import org.apache.cxf.management.web.browser.client.ui.View;
+
+public interface NavigationSidebarView extends View {
+
+    public interface Presenter {
+        void onSubcriptionItemClicked(int row);
+        
+        void onManageSubscriptionsButtonClicked();
+
+        void onEditCriteriaHyperinkClicked();
+    }
+
+    void setSubscriptions(List<Subscription> subscriptions);
+    
+    void setPresenter(Presenter presenter);
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.ui.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.ui.xml?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.ui.xml (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.ui.xml Fri Feb  4 17:34:24 2011
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+  -->
+
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+             xmlns:g='urn:import:com.google.gwt.user.client.ui'
+             xmlns:logbrowser='urn:import:org.apache.cxf.management.web.browser.client.ui.browser'>
+
+    <ui:with field='res'
+             type='org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserResources'/>
+
+    <g:StackLayoutPanel unit='EM'>
+        <g:stack>
+            <g:header size='3'>
+                <div>
+                    <div/>
+                    Explore
+                </div>
+            </g:header>
+
+            <g:VerticalPanel width="100%">
+                <g:Label>Tasks</g:Label>
+                <g:Hyperlink ui:field="manageSubscriptionsHyperlink">
+                    Manage endpoints
+                </g:Hyperlink>
+                <g:Label>Endpoints</g:Label>
+                <logbrowser:SubscriptionTable ui:field='exploreSubscriptionTable'
+                                              styleName='{res.css.browserTabEntrySelectableTable}'/>
+            </g:VerticalPanel>
+        </g:stack>
+        <g:stack>
+            <g:header size='3'>
+                <div>
+                    <div/>
+                    Filter
+                </div>
+            </g:header>
+
+            <g:VerticalPanel width="100%">
+                <g:Label>Tasks</g:Label>
+                <g:Hyperlink ui:field="editCriteriaHyperlink">
+                    Edit criteria
+                </g:Hyperlink>
+                <g:Label>Endpoints</g:Label>
+                <logbrowser:SubscriptionTable ui:field='filterSubscriptionTable'
+                                              styleName='{res.css.browserTabEntrySelectableTable}'/>
+            </g:VerticalPanel>
+        </g:stack>
+    </g:StackLayoutPanel>
+</ui:UiBinder>
\ No newline at end of file

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.ui.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.ui.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarView.ui.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarViewImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarViewImpl.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarViewImpl.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarViewImpl.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+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.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Singleton;
+
+import org.apache.cxf.management.web.browser.client.service.settings.Subscription;
+
+@Singleton
+public class NavigationSidebarViewImpl extends Composite implements NavigationSidebarView {
+
+    @UiTemplate("NavigationSidebarView.ui.xml")
+    interface NavigationSidebarViewUiBinder extends UiBinder<Widget, NavigationSidebarViewImpl> { }
+
+    private static final NavigationSidebarViewUiBinder UI_BINDER =
+            GWT.create(NavigationSidebarViewUiBinder.class);    
+
+    @UiField @Nonnull
+    SubscriptionTable exploreSubscriptionTable;
+
+    @UiField @Nonnull
+    SubscriptionTable filterSubscriptionTable;
+
+    @Nullable
+    private Presenter presenter;
+
+    public NavigationSidebarViewImpl() {
+        initWidget(UI_BINDER.createAndBindUi(this));
+
+        addColumnDefinitions(exploreSubscriptionTable);
+        exploreSubscriptionTable.addSelectRowHandler(new SelectableTable.SelectRowHandler() {
+
+            public void onSelectRow(int row) {
+
+                // Remove selection from subscription list in filter section
+                filterSubscriptionTable.deselect();
+                presenter.onSubcriptionItemClicked(row);
+            }
+        });
+
+        addColumnDefinitions(filterSubscriptionTable);
+        filterSubscriptionTable.addSelectRowHandler(new SelectableTable.SelectRowHandler() {
+
+            public void onSelectRow(int row) {
+
+                // Remove selection from subscription list in explore section
+                exploreSubscriptionTable.deselect();
+                presenter.onSubcriptionItemClicked(row);
+            }
+        });
+    }
+
+    public void setSubscriptions(@Nonnull final List<Subscription> subscriptions) {
+        exploreSubscriptionTable.setData(subscriptions);
+        filterSubscriptionTable.setData(subscriptions);
+    }
+
+    @UiHandler("editCriteriaHyperlink")
+    void onEditCriteriaHyperlinkClicked(@Nonnull final ClickEvent event) {
+        assert presenter != null;
+        presenter.onEditCriteriaHyperinkClicked();
+    }
+
+    @UiHandler("manageSubscriptionsHyperlink")
+    void onManageSubscriptionsHyperlinkClicked(@Nonnull final ClickEvent event) {
+        assert presenter != null;
+        presenter.onManageSubscriptionsButtonClicked();
+    }
+
+    @SuppressWarnings("unchecked")
+    private void addColumnDefinitions(@Nonnull SubscriptionTable table) {
+        table.setColumnDefinitions(new SelectableTable.ColumnDefinition<Subscription>() {
+
+            public String getContent(Subscription subscription) {
+                return subscription.getName();
+            }
+
+            public String getWidth() {
+                return null;
+            }
+        });
+    }
+
+    public void setPresenter(Presenter presenter) {
+        this.presenter = presenter;
+    }
+
+    public Widget asWidget() {
+        return this;
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarViewImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/NavigationSidebarViewImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/SelectableTable.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/SelectableTable.java?rev=1067233&view=auto
==============================================================================
--- cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/SelectableTable.java (added)
+++ cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/SelectableTable.java Fri Feb  4 17:34:24 2011
@@ -0,0 +1,267 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.cxf.management.web.browser.client.ui.browser;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyDownEvent;
+import com.google.gwt.event.dom.client.KeyDownHandler;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.FocusPanel;
+import com.google.gwt.user.client.ui.HTMLTable.Cell;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.UIObject;
+
+import org.apache.cxf.management.web.browser.client.ui.resources.LogBrowserResources;
+
+public class SelectableTable<T> extends Composite {
+
+    @Nonnull
+    private final ScrollPanel scroller;
+
+    @Nullable
+    private final FocusPanel focuser;
+
+    @Nonnull
+    private final FlexTable table;
+
+    @Nonnull
+    private final List<SelectRowHandler> selectRowHandlers;
+
+    private final boolean hotkeysEnabled;
+
+    private int selectedRowIndex;
+    
+    private boolean isRowSelected;
+
+    private Label messageLabel;
+
+    @Nullable
+    private List<ColumnDefinition<T>> columnDefinitions;
+
+    @Nonnull
+    private LogBrowserResources resources = GWT.create(LogBrowserResources.class);
+
+    public SelectableTable(final boolean hotkeysEnabled) {
+        this.hotkeysEnabled = hotkeysEnabled;
+        selectRowHandlers = new ArrayList<SelectRowHandler>();
+
+        table = new FlexTable();
+        table.setCellPadding(0);
+        table.setCellSpacing(0);
+        table.setVisible(false);
+
+        messageLabel = new Label();
+        messageLabel.setVisible(false);
+
+        FlowPanel content = new FlowPanel();
+        content.add(messageLabel);
+        content.add(table);
+
+        scroller = new ScrollPanel();
+
+        if (hotkeysEnabled) {
+            focuser = new FocusPanel();
+            focuser.setWidth("99%");
+            focuser.add(content);
+
+            scroller.add(focuser);
+        } else {
+            focuser = null;
+
+            scroller.add(content);
+        }
+
+        addEventHandlers();
+
+        initWidget(scroller);
+    }
+
+    public void setMessageInsteadOfData(@Nonnull final String message, @Nullable final String styleName) {
+        messageLabel.setText(message);
+
+        messageLabel.setVisible(true);
+        table.setVisible(false);
+
+        if (styleName != null) {
+            messageLabel.setStyleName(styleName);
+        }
+    }
+
+    public void setData(@Nonnull final List<T> entries) {
+        assert columnDefinitions != null;
+        
+        table.removeAllRows();
+
+        messageLabel.setVisible(false);
+        table.setVisible(true);
+        
+        for (int i = 0; i < entries.size(); i++) {
+            T entry = entries.get(i);
+            for (int j = 0; j < columnDefinitions.size(); j++) {
+                ColumnDefinition<T> columnDefinition = columnDefinitions.get(j);
+                table.setText(i, j, columnDefinition.getContent(entry));
+            }
+        }
+
+        restoreRowSelection();
+
+        if (hotkeysEnabled) {
+            focuser.setFocus(true);
+        }
+    }
+
+    public void setColumnDefinitions(@Nonnull final List<ColumnDefinition<T>> columnDefinitions) {
+        this.columnDefinitions = columnDefinitions;
+        setColumnsWidth();
+    }
+
+    public void setColumnDefinitions(ColumnDefinition<T>... columnDefinitions) {
+        this.columnDefinitions = Arrays.asList(columnDefinitions);
+        setColumnsWidth();
+    }
+
+    public void addSelectRowHandler(@Nonnull final SelectRowHandler selectRowHandler) {
+        selectRowHandlers.add(selectRowHandler);
+    }
+
+    public void deselect() {
+        if (table.getRowCount() > 0) {
+            styleRow(selectedRowIndex, false);
+            selectedRowIndex = 0;
+            isRowSelected = false;
+        }
+    }
+
+    private void addEventHandlers() {
+        table.addClickHandler(new ClickHandler() {
+
+            public void onClick(@Nonnull final ClickEvent event) {
+                performClickAction(event);
+            }
+        });
+
+        if (hotkeysEnabled) {
+            focuser.addKeyDownHandler(new KeyDownHandler() {
+
+                public void onKeyDown(@Nonnull final KeyDownEvent event) {
+                    performKeyDownAction(event);
+                }
+            });
+        }
+    }
+
+    private void performClickAction(@Nonnull final ClickEvent event) {
+        Cell cell = table.getCellForEvent(event);
+        if (cell != null) {
+            int row = cell.getRowIndex();
+            selectRow(row);
+        }
+    }
+
+    private void performKeyDownAction(@Nonnull final KeyDownEvent event) {
+        if (isRowSelected) {
+            event.preventDefault();
+
+            if (event.isUpArrow()) {
+                selectRow(selectedRowIndex - 1);
+            } else if (event.isDownArrow()) {
+                selectRow(selectedRowIndex + 1);
+            }
+
+            ScrollMarker scrollMarker =
+                new ScrollMarker(table.getRowFormatter().getElement(selectedRowIndex));
+            scroller.ensureVisible(scrollMarker);
+        }
+    }
+
+    private void selectRow(final int row) {
+        if (row >= 0 && row < table.getRowCount()) {
+            if (isRowSelected) {
+                styleRow(selectedRowIndex, false);
+            }
+
+            selectedRowIndex = row;
+            styleRow(selectedRowIndex, true);
+            isRowSelected = true;
+
+            fireSelectRowEvent();
+        }
+    }
+
+    private void styleRow(final int row, final boolean selected) {
+        String style = resources.css().browserTabSelectedRow();
+
+        if (selected) {
+            table.getRowFormatter().addStyleName(row, style);
+        } else {
+            table.getRowFormatter().removeStyleName(row, style);
+        }
+    }
+
+    private void fireSelectRowEvent() {
+        for (SelectRowHandler selectRowHandler : selectRowHandlers) {
+            selectRowHandler.onSelectRow(selectedRowIndex);
+        }
+    }
+    
+    private void restoreRowSelection() {
+        if (isRowSelected && selectedRowIndex < table.getRowCount()) {
+            selectRow(selectedRowIndex);
+        } else {
+            isRowSelected = false;
+        }
+    }
+    
+    private void setColumnsWidth() {
+        assert columnDefinitions != null;
+        for (int j = 0; j < columnDefinitions.size(); j++) {
+            ColumnDefinition columnDefinition = columnDefinitions.get(j);
+            table.getColumnFormatter().setWidth(j, columnDefinition.getWidth());
+        }
+    }
+
+    private class ScrollMarker extends UIObject {
+        public ScrollMarker(Element element) {
+            setElement(element);
+        }
+    }
+
+    public static interface SelectRowHandler {
+        void onSelectRow(int row);
+    }
+
+    public static interface ColumnDefinition<T> {
+        String getContent(T t);
+        
+        String getWidth();
+    }
+}

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/SelectableTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/browser/client/ui/browser/SelectableTable.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date