Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright 1997-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]"
  *
  * Contributor(s):
  * The Original Software is NetBeans. The Initial Developer of the Original
  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
  * Microsystems, Inc. All Rights Reserved.
  *
  * 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.
  */
 
 package org.netbeans.modules.profiler.ppoints.ui;
 
 import java.io.File;

Author(s):
Jiri Sedlacek
Tomas Hurka
 
     "ShowOppositeProfilingPointAction_NoEndDefinedMsg=No end point defined for this Profiling Point",
     "ShowOppositeProfilingPointAction_NoDataString=<No Data Available>",
     "ShowOppositeProfilingPointAction_EndActionName=Go To End Point",
     "ShowOppositeProfilingPointAction_StartActionName=Go To Start Point"
 })
 public class ShowOppositeProfilingPointAction extends SystemAction implements ContextAwareAction {
     //~ Inner Classes ------------------------------------------------------------------------------------------------------------
 
     private static class InvocationLocationDescriptor {
         //~ Instance fields ------------------------------------------------------------------------------------------------------
 
         private CodeProfilingPoint.Location location;
         private CodeProfilingPoint.Location oppositeLocation;
         private boolean isStartLocation;
 
         //~ Constructors ---------------------------------------------------------------------------------------------------------
 
         InvocationLocationDescriptor(CodeProfilingPoint.Paired profilingPointCodeProfilingPoint.Location location) {
             this. = location;
             computeOppositeLocation(profilingPoint);
         }
 
         //~ Methods --------------------------------------------------------------------------------------------------------------
 
         CodeProfilingPoint.Location getLocation() {
             return ;
         }
 
             return ;
         }
 
        boolean isStartLocation() {
            return ;
        }
        private void computeOppositeLocation(CodeProfilingPoint.Paired profilingPoint) {
            CodeProfilingPoint.Location startLocation = profilingPoint.getStartLocation();
            if (new File(startLocation.getFile()).equals(new File(.getFile()))
                    && (startLocation.getLine() == .getLine())) {
                 = profilingPoint.getEndLocation();
                 = true;
            } else {
                 = profilingPoint.getStartLocation();
                 = false;
            }
        }
    }
    //~ Constructors -------------------------------------------------------------------------------------------------------------
        setIcon(null);
        putValue("noIconInMenu".); // NOI18N
        setEnabled(false);
    }
    //~ Methods ------------------------------------------------------------------------------------------------------------------
    @Override
    public HelpCtx getHelpCtx() {
        return new HelpCtx(ShowOppositeProfilingPointAction.class);
    }
    @Override
    public String getName() {
        return Bundle.ShowOppositeProfilingPointAction_NoDataString();
    }
    @Override
    public void actionPerformed(ActionEvent ae) {
    }
    @Override
    public Action createContextAwareInstance(Lookup actionContext) {
        if (!ProfilingPointsManager.getDefault().isProfilingSessionInProgress()) {
            Collection<? extends CodeProfilingPoint.Annotationanns = actionContext.lookupAll(CodeProfilingPoint.Annotation.class);
            final InvocationLocationDescriptor desc = getCurrentLocationDescriptor(anns);
            if (desc != null) {
                String name = desc.isStartLocation() ? 
                    Bundle.ShowOppositeProfilingPointAction_EndActionName() : 
                        Bundle.ShowOppositeProfilingPointAction_StartActionName();
                return new AbstractAction(name) {
                    @Override
                    public void actionPerformed(ActionEvent ae) {
                        CodeProfilingPoint.Location oppositeLocation = desc.getOppositeLocation();
                        if (oppositeLocation != null) {
                            Utils.openLocation(oppositeLocation);
                        } else {
                            ProfilerDialogs.displayWarning(
                                    Bundle.ShowOppositeProfilingPointAction_NoEndDefinedMsg());
                        }
                    }
                };
            }
        }
        return this;
    }
        if (anns.size() == 1) {
            CodeProfilingPoint pp = anns.iterator().next().profilingPoint();
            CodeProfilingPoint.Location currentLocation = Utils.getCurrentLocation(0);
            if (pp instanceof CodeProfilingPoint.Paired) {
                return new InvocationLocationDescriptor((CodeProfilingPoint.Paired)ppcurrentLocation);
            }
        }
        return null;
    }
New to GrepCode? Check out our FAQ X