GWT lazy loading

Does GWT have LazyPanel. I don't see him. Please let me know. If he got lazyPanel please let me know the version

+1


source to share


2 answers


I agree with rustyshelf on the google search principle, but since StackOverflow is also a link in itself, here's a more detailed answer:

The LazyPanel is not displayed by default. Only when setVisible (true) is called on the LazyPanel is the main widget created.

This class should primarily be used in conjunction with StackPanel, DisclosurePanel, and TabPanel when child panels contain relatively heavy weight content.
Using LazyPanel to wrap the creation of this content can greatly improve the user experience.




Using LazyPanel is simple . All you have to do is add the widget you want to lazy load to the lazy bar and then call setVisible (true) on the lazy bar to actually have the widget load on demand. It's worth noting that LazyPanel is primarily intended for use with widgets like TabPanel and StackPanel, and is not ideal in all cases.

+2


source


Here is LazyPanel.java from the "release candidate" GWT 1.6.2 So yes, simple, and confirming the answer above.



/*
 * Copyright 2008 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package com.google.gwt.user.client.ui;

/**
 * Convenience class to help lazy loading. The bulk of a LazyPanel is not
 * instantiated until {@link #setVisible}(true) or {@link #ensureWidget} is
 * called.
 * <p>
 * <h3>Example</h3> {@example com.google.gwt.examples.LazyPanelExample}
 */
public abstract class LazyPanel extends SimplePanel {

  public LazyPanel() {
  }

  /**
   * Create the widget contained within the {@link LazyPanel}.
   * 
   * @return the lazy widget
   */
  protected abstract Widget createWidget();

  /**
   * Ensures that the widget has been created by calling {@link #createWidget}
   * if {@link #getWidget} returns <code>null</code>. Typically it is not
   * necessary to call this directly, as it is called as a side effect of a
   * <code>setVisible(true)</code> call.
   */
  public void ensureWidget() {
    Widget widget = getWidget();
    if (widget == null) {
      widget = createWidget();
      setWidget(widget);
    }
  }

  @Override
  /*
   * Sets whether this object is visible. If <code>visible</code> is
   * <code>true</code>, creates the sole child widget if necessary by calling
   * {@link #ensureWidget}.
   * 
   * @param visible <code>true</code> to show the object, <code>false</code> to
   * hide it
   */
  public void setVisible(boolean visible) {
    if (visible) {
      ensureWidget();
    }
    super.setVisible(visible);
  }
}

      

0


source







All Articles