|
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-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.refactoring.ui; import java.awt.BorderLayout; import java.util.*; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.border.EmptyBorder; import org.netbeans.modules.refactoring.api.AbstractRefactoring; import org.netbeans.modules.refactoring.api.MoveClassRefactoring; import org.netbeans.modules.refactoring.api.Problem; import org.netbeans.modules.refactoring.api.ui.ParametersPanel; import org.netbeans.modules.refactoring.api.ui.RefactoringUI; import org.netbeans.jmi.javamodel.Resource; import org.netbeans.modules.java.JavaDataObject; import org.netbeans.modules.javacore.internalapi.JavaMetamodel; import org.netbeans.modules.refactoring.ui.MoveClassUI; import org.openide.explorer.view.NodeRenderer; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; import org.openide.loaders.DataObject; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; import org.openide.awt.Mnemonics; /** * @author Jan Becicka */ public class MoveClassesUI implements RefactoringUI { private List resources; private Set javaObjects; private MovePanel panel; private MoveClassRefactoring refactoring; private String targetPkgName = ""; private boolean disable; static final String getString(String key) { return NbBundle.getMessage(MoveClassUI.class, key); } public MoveClassesUI(Set javaObjects) { this(javaObjects, false); } public MoveClassesUI(Set javaObjects, boolean disable) { this.disable = disable; this.javaObjects=javaObjects; JavaMetamodel model = JavaMetamodel.getManager(); resources = new ArrayList(javaObjects.size()); for (Iterator i=javaObjects.iterator(); i.hasNext();) { resources.add(model.getResource(((JavaDataObject) i.next()).getPrimaryFile())); } } public String getName() { return getString ("LBL_MoveClasses"); } public String getDescription() { return getName(); } public boolean isQuery() { return false; } public JPanel getPanel(ParametersPanel parent) { if (panel == null) { panel = new MovePanel (parent, getString(disable ? "LBL_RefactorClassesAfterMove" : "LBL_MoveClasses"), disable ? getString("LBL_RefactorClassesNeeded") : getString("LBL_MoveClassesHeadline"), getResPackageName((Resource) resources.get(0)) ); } return panel; } private static String getResPackageName(Resource res) { String name = res.getName(); if ( name.indexOf('/') == -1 ) return ""; return name.substring(0, name.lastIndexOf('/')).replace('/','.'); } private String packageName () { return targetPkgName.trim().length() == 0 ? getString ("LBL_DefaultPackage") : targetPkgName.trim (); } private Problem setParameters(boolean checkOnly) { if (panel==null) return null; targetPkgName = panel.getPackageName (); FileObject folder = checkOnly?null:FileUtil.toFileObject(panel.getFolder()); if (folder == null) { folder = refactoring.classPath.findResource(targetPkgName.replace('.','/')); if (folder == null) { return new Problem (true, getString("ERR_UnknownPackage")); } } if (checkOnly) { return refactoring.checkParameters(folder); } else { return refactoring.setParameters(disable?null:folder); } } public Problem checkParameters() { return setParameters(true); } public Problem setParameters() { return setParameters(false); } public AbstractRefactoring getRefactoring() { if (refactoring == null) { refactoring = new MoveClassRefactoring (resources, false, disable); } return refactoring; } private final Vector getNodes() { Vector result = new Vector(javaObjects.size()); for(Iterator i = javaObjects.iterator(); i.hasNext();) { result.add(((DataObject) i.next()).getNodeDelegate()); } return result; } public boolean hasParameters() { return true; } public HelpCtx getHelpCtx() { return new HelpCtx(MoveClassesUI.class); } // MovePanel ............................................................... class MovePanel extends MoveClassPanel { public MovePanel (final ParametersPanel parent, String title, String headline, String startPackage) { super(parent, title, headline, startPackage, ((JavaDataObject) javaObjects.iterator().next()).getPrimaryFile() ); setCombosEnabled(!disable); JList list = new JList(getNodes()); list.setCellRenderer(new NodeRenderer()); JScrollPane pane = new JScrollPane(list); bottomPanel.setBorder(new EmptyBorder(8,0,0,0)); bottomPanel.setLayout(new BorderLayout()); bottomPanel.add(pane, BorderLayout.CENTER); JLabel listOf = new JLabel(); Mnemonics.setLocalizedText(listOf, NbBundle.getMessage(MoveClassesUI.class, "LBL_ListOfClasses")); bottomPanel.add(listOf, BorderLayout.NORTH); } } } |
... 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.