|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.refactoring.ui; import java.text.MessageFormat; import java.util.Collection; import java.util.Enumeration; import java.util.LinkedList; import java.util.StringTokenizer; import javax.jmi.reflect.RefObject; import org.netbeans.api.java.classpath.ClassPath; import org.netbeans.modules.refactoring.api.RenameRefactoring; import org.netbeans.modules.refactoring.api.ui.RefactoringUI; import org.netbeans.jmi.javamodel.JavaClass; import org.netbeans.jmi.javamodel.JavaPackage; import org.netbeans.jmi.javamodel.NamedElement; import org.netbeans.jmi.javamodel.Resource; import org.netbeans.modules.java.JavaDataObject; import org.netbeans.modules.javacore.internalapi.JavaMetamodel; import org.netbeans.modules.refactoring.api.AbstractRefactoring; import org.netbeans.modules.refactoring.api.MoveClassRefactoring; import org.openide.filesystems.FileObject; import org.openide.loaders.DataFolder; import org.openide.loaders.DataObject; import org.openide.loaders.DataObjectNotFoundException; import org.openide.nodes.Node; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; import org.openide.windows.TopComponent; /** * * @author Martin Matula */ public class RenameRefactoringUI implements RefactoringUI { private final AbstractRefactoring refactoring; private final String oldName; private final String dispOldName; private String newName; private RenamePanel panel; private boolean fromListener = false; RenameRefactoringUI(RefObject jmiObject, FileObject folder) { if (jmiObject == null || jmiObject instanceof JavaPackage) { if (folder == null) { folder = JavaMetamodel.getManager().getClassPath().findResource(((JavaPackage) jmiObject).getName().replace('.','/')); if (folder == null) { //package declaration is invalid Node[] nodes = TopComponent.getRegistry().getActivatedNodes(); DataObject dob = (DataObject) nodes[0].getCookie(DataObject.class); folder = dob.getFolder().getPrimaryFile(); } } this.refactoring = createMoveClassRefactoring(folder); String packageName = jmiObject != null ? ((JavaPackage) jmiObject).getName():null; if (packageName != null) { oldName = "".equals(packageName) ? NbBundle.getBundle("org.netbeans.spi.java.project.support.ui.Bundle").getString("LBL_DefaultPackage") : packageName; } else { oldName = ClassPath.getClassPath(folder, ClassPath.SOURCE).getResourceName(folder).replace('/','.'); } } else if (jmiObject instanceof JavaClass) { this.refactoring = new RenameRefactoring(jmiObject, folder); Object comp = jmiObject.refImmediateComposite(); if (comp instanceof Resource) { FileObject fo = JavaMetamodel.getManager().getFileObject((Resource)comp); oldName = fo.getName(); } else { oldName = ((JavaClass) jmiObject).getSimpleName(); } } else { this.refactoring = new RenameRefactoring(jmiObject, folder); if (jmiObject instanceof NamedElement) { if (jmiObject instanceof Resource) { oldName = JavaMetamodel.getManager().getDataObject((Resource)jmiObject).getName(); } else oldName = ((NamedElement) jmiObject).getName(); } else { oldName = ""; } } dispOldName = oldName; } public RenameRefactoringUI(RefObject jmiObject) { this(jmiObject, null); } private MoveClassRefactoring createMoveClassRefactoring(FileObject folder) { Enumeration en = folder.getChildren(false); LinkedList resources = new LinkedList(); LinkedList others = new LinkedList(); while (en.hasMoreElements()) { try { DataObject dob = DataObject.find((FileObject) en.nextElement()); if (dob instanceof JavaDataObject) { resources.add(JavaMetamodel.getManager().getResource(dob.getPrimaryFile())); } else if (!(dob instanceof DataFolder)) { others.add(dob); } } catch (DataObjectNotFoundException e) { } } return new MoveClassRefactoring(resources, others, folder); } RenameRefactoringUI(RefObject jmiObject, String name, String dispOldName, boolean checkName, FileObject folder) { this.refactoring = new RenameRefactoring(jmiObject, checkName, folder); oldName = name; this.dispOldName = dispOldName; fromListener = true; } public boolean isQuery() { return false; } public javax.swing.JPanel getPanel(org.netbeans.modules.refactoring.api.ui.ParametersPanel parent) { if (panel == null) { panel = new RenamePanel(oldName, parent, NbBundle.getMessage(RenamePanel.class, fromListener ? "LBL_RefactorAfterRename" : "LBL_Rename")); } return panel; } public org.netbeans.modules.refactoring.api.Problem setParameters() { newName = panel.getNameValue(); return refactoring instanceof RenameRefactoring ? ((RenameRefactoring) refactoring).setParameters(newName) : ((MoveClassRefactoring) refactoring).setParameters(newName); } public org.netbeans.modules.refactoring.api.Problem checkParameters() { newName = panel.getNameValue(); return refactoring instanceof RenameRefactoring ? ((RenameRefactoring) refactoring).checkParameters(newName) : ((MoveClassRefactoring) refactoring).checkParameters(newName); } public org.netbeans.modules.refactoring.api.AbstractRefactoring getRefactoring() { return refactoring; } public String getDescription() { return new MessageFormat(NbBundle.getMessage(RenameAction.class, "DSC_Rename")).format ( new Object[] {dispOldName, newName} ); } public String getName() { return NbBundle.getMessage(RenameAction.class, "LBL_Rename"); } public boolean hasParameters() { return true; } public HelpCtx getHelpCtx() { return new HelpCtx(RenameRefactoringUI.class); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.