Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
   *
   * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
   * Other names may be trademarks of their respective owners.
   *
   * The contents of this file are subject to the terms of either the GNU
  * General Public License Version 2 only ("GPL") or the Common
  * Development and Distribution License("CDDL") (collectively, the
  * "License"). You may not use this file except in compliance with the
  * License. You can obtain a copy of the License at
  * http://www.netbeans.org/cddl-gplv2.html
  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  * specific language governing permissions and limitations under the
  * License.  When distributing the software, include this License Header
  * Notice in each file and include the License file at
  * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
  * particular file as subject to the "Classpath" exception as provided
  * by Oracle in the GPL Version 2 section of the License file that
  * accompanied this code. If applicable, add the following below the
  * License Header, with the fields enclosed by brackets [] replaced by
  * your own identifying information:
  * "Portions Copyrighted [year] [name of copyright owner]"
  *
  * If you wish your version of this file to be governed by only the CDDL
  * or only the GPL Version 2, indicate your decision by adding
  * "[Contributor] elects to include this software in this distribution
  * under the [CDDL or GPL Version 2] license." If you do not indicate a
  * single choice of license, a recipient has the option to distribute
  * your version of this file under either the CDDL, the GPL Version 2 or
  * to extend the choice of license to its licensees as provided above.
  * However, if you add GPL Version 2 code and therefore, elected the GPL
  * Version 2 license, then the option applies only if the new code is
  * made subject to such option by the copyright holder.
  *
  * Contributor(s):
  *
  * Portions Copyrighted 2009 Sun Microsystems, Inc.
  */
 
 package org.netbeans.modules.bugtracking.ui.query;
 
 import  org.jdesktop.layout.Baseline;
 import  org.jdesktop.layout.LayoutStyle;
 import static org.jdesktop.layout.LayoutStyle.RELATED;

Panel containing "My Queries: My Issues | High Priority | ... ". It wraps automatically if it does not fit to the visible part if the scrollpane's view.

Author(s):
Marian Petras
 
 public class QueriesPanel extends ViewportWidthAwarePanel {
 
     private static final JLabel fakeLabel = new JLabel("fake");         //NOI18N
 
     private final JLabel queriesLabel;
     private final QueryLinksPanel queryLinksPanel;
 
     private int baseline;
     private boolean baselineValid;
 
     private int labelBaseline;
     private boolean labelBaselineValid;
 
     private int linksPanelOffset;
     private boolean linksPanelOffsetValid;
 
     private Dimension prefSize;
     private Insets cachedInsets;
 
     public QueriesPanel() {
         super(null);
          = new JLabel();
          = new QueryLinksPanel();
         
 
         Mnemonics.setLocalizedText(
                ,
                NbBundle.getMessage(getClass(),
                                    "QueryTopComponent.jLabel1.text_1"));//NOI18N
 
         setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
 
         add();
        add();
    }
    void setQueries(Query[] queries) {
        invalidatePrefSize();
        .setQueries(queries);
    }
    boolean hasQueries() {
        return !.isEmpty();
    }
    boolean isWrapped() {
        return .isWrapped();
    }
    @Override
    protected void visibleWidthChanged(int newWidth) {
        invalidatePrefSize();
        super.visibleWidthChanged(newWidth);
    }
    @Override
    protected void notifyChildrenOfVisibleWidth() {
                getAvailableWidth() - getLinksPanelOffset()
                - getCachedInsets().
                - getCachedInsets().);
    }
    @Override
    public Dimension getPreferredSize() {
        if ( == null) {
            Dimension labelPrefSize = .getPreferredSize();
            Dimension panelPrefSize = .getPreferredSize();
            int aboveBaseline = getBaseline();
            int belowBaseline1 = labelPrefSize.height - getLabelBaseline();
            int belowBaseline2 = panelPrefSize.height - .getBaseline();
            int belowBaseline = Math.max(belowBaseline1belowBaseline2);
            int width = getLinksPanelOffset() + panelPrefSize.width;
            int height = aboveBaseline + belowBaseline;
            Insets insets = getCachedInsets();
            width += insets.left + insets.right;
            height += insets.bottom;    //top inset is included in the baseline
             = new Dimension(widthheight);
        }
        return ;
    }
    @Override
    public void invalidate() {
        invalidatePrefSize();
        super.invalidate();
    }
    @Override
    public void doLayout() {
        Dimension tmpPrefSize;
        if (.isEmpty()) {
            Insets insets = getCachedInsets();
            tmpPrefSize = .getPreferredSize();
            .setBounds(insets.left,
                                   insets.top,
                                   tmpPrefSize.width,
                                   tmpPrefSize.height);
            return;
        }
        validateBaseline();
        tmpPrefSize = .getPreferredSize();
                                - getLabelBaseline(),
                               tmpPrefSize.width,
                               tmpPrefSize.height);
        tmpPrefSize = .getPreferredSize();
                                   - .getBaseline(),
                                  tmpPrefSize.width,
                                  tmpPrefSize.height);
    }
    private int getLinksPanelOffset() {
        if (!) {
                               + LayoutStyle.getSharedInstance()
                                 .getPreferredGap(,
                                                  ,
                                                  RELATED,
                                                  .,
                                                  this);
             = true;
        }
        return ;
    }
    private Insets getCachedInsets() {
        if ( == null) {
             = super.getInsets();
        }
        return ;
    }
    /*
     * To make it work correctly with GroupLayout.
     */
    public int getBaseline(int widthint height) {
        return getBaseline();
    }
    public int getBaseline() {
        validateBaseline();
        return ;
    }
    private void validateBaseline() {
        if (!) {
            .validateVerticalMetrics();
             = Math.max(getLabelBaseline(),
                                .getBaseline())
                       + getCachedInsets().;
             = true;
        }
    }
    private int getLabelBaseline() {
        if (!) {
             = Baseline.getBaseline();
             = true;
        }
        return ;
    }
    /*
     * To make it work correctly with GroupLayout.
     */
    public int getBaselineResizeBehaviorInt() {
        return Baseline.BRB_CONSTANT_ASCENT;
    }
    @Override
    public void setUI(PanelUI ui) {
        super.setUI(ui);
    }
    @Override
    protected void setUI(ComponentUI newUI) {
        super.setUI(newUI);
    }
    private void invalidateUiDependentValues() {
         = false;
         = false;
         = false;
         = null;
        invalidatePrefSize();
    }
    private void invalidatePrefSize() {
         = null;
    }
New to GrepCode? Check out our FAQ X