IDEA-19061 Integrate the Rearranger-plugin into core-IDEA

Refactoring
This commit is contained in:
Denis.Zhdanov
2012-05-14 13:19:13 +04:00
parent 32e9e62430
commit 913cfb3572
5 changed files with 102 additions and 124 deletions
@@ -23,7 +23,7 @@ package com.wrq.rearranger.configuration;
import com.wrq.rearranger.settings.RearrangerSettings;
import com.wrq.rearranger.settings.attributeGroups.AttributeGroup;
import com.wrq.rearranger.settings.attributeGroups.IPrioritizableRule;
import com.wrq.rearranger.settings.attributeGroups.PrioritizedRule;
import com.wrq.rearranger.settings.attributeGroups.Rule;
import com.wrq.rearranger.util.Constraints;
@@ -139,7 +139,7 @@ public abstract class SettingsPane {
if (columnIndex == PRIORITY_COLUMN && rowIndex >= 0) {
ChoicePanel cp = (modelData.get(rowIndex));
Rule rule = cp.getChoice().getChoiceObject();
if (rule instanceof IPrioritizableRule) {
if (rule instanceof PrioritizedRule) {
return true;
}
}
@@ -150,7 +150,7 @@ public abstract class SettingsPane {
if (columnIndex == PRIORITY_COLUMN) {
ChoicePanel cp = (modelData.get(rowIndex));
Rule rule = cp.getChoice().getChoiceObject();
if (rule instanceof IPrioritizableRule) {
if (rule instanceof PrioritizedRule) {
int priority;
try {
priority = (new Integer((String)aValue));
@@ -37,7 +37,7 @@ import java.util.List;
* expression is also supported.
*/
public abstract class CommonAttributes
implements AttributeGroup, IPrioritizableRule
implements AttributeGroup, PrioritizedRule
{
// ------------------------------ FIELDS ------------------------------
@@ -45,7 +45,7 @@ import java.util.List;
/** Rule and attributes to support grouping of methods that implement interface methods. */
public class InterfaceAttributes
implements AttributeGroup, IRestrictMethodExtraction, IPrioritizableRule
implements AttributeGroup, IRestrictMethodExtraction, PrioritizedRule
{
private boolean noExtractedMethods;
NameAttribute nameAttr;
@@ -25,5 +25,5 @@ package com.wrq.rearranger.settings.attributeGroups;
* Marker interface for rules which have a user-assignable priority. This excludes comment rules, and invisible
* header and trailer rules.
*/
public interface IPrioritizableRule {
public interface PrioritizedRule {
}
@@ -21,143 +21,121 @@
*/
package com.wrq.rearranger;
import com.intellij.openapi.editor.Document;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.testFramework.LightCodeInsightTestCase;
import com.wrq.rearranger.configuration.RearrangerSettingsPanel;
import com.intellij.testFramework.SkipInHeadlessEnvironment;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import com.wrq.rearranger.settings.RearrangerSettings;
import com.wrq.rearranger.settings.attributeGroups.IPrioritizableRule;
import com.wrq.rearranger.settings.attributeGroups.Rule;
import com.wrq.rearranger.util.Constraints;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ListIterator;
/**
* @author davek
* Date: Mar 30, 2004
*/
@SkipInHeadlessEnvironment
public class InteractiveTest
extends LightCodeInsightTestCase
extends LightCodeInsightFixtureTestCase
{
private RearrangerSettings rs;
public static final String DEFAULT_CONFIGURATION_ROOT = ".."; // up one level from test
public static final String DEFAULT_CONFIGURATION = DEFAULT_CONFIGURATION_ROOT + "/src/com/wrq/rearranger/defaultConfiguration.xml";
private RearrangerSettings mySettings;
@Override
protected String getTestDataPath() {
return "testData"; // run unit tests with effective working directory of "C:\Rearranger\test"
protected String getBasePath() {
return "/plugins/rearranger/test/testData/com/wrq/rearranger";
}
protected final void setUp() throws Exception {
super.setUp();
Logger logger = Logger.getLogger("com.wrq.rearranger");
// logger.setAdditivity(false);
// logger.addAppender(new ConsoleAppender(new PatternLayout("[%7r] %6p - %30.30c - %m \n")));
// logger.setLevel(Level.DEBUG);
logger.setLevel(Level.INFO);
rs = new RearrangerSettings();
rs.setAskBeforeRearranging(true);
rs.setRearrangeInnerClasses(true);
mySettings = new RearrangerSettings();
mySettings.setAskBeforeRearranging(true);
mySettings.setRearrangeInnerClasses(true);
}
public final void testLiveRearrangerDialog() throws Exception {
configureByFile("/com/wrq/rearranger/RearrangementTest28.java");
final PsiFile file = getFile();
final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
final LiveRearrangerActionHandler rah = new LiveRearrangerActionHandler();
rah.liveRearrangeDocument(getProject(), file, rs, doc, 0);
super.checkResultByFile("/com/wrq/rearranger/RearrangementTest28.java");
//configureByFile("/com/wrq/rearranger/RearrangementTest28.java");
//final PsiFile file = getFile();
//final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
//final LiveRearrangerActionHandler rah = new LiveRearrangerActionHandler();
//rah.liveRearrangeDocument(getProject(), file, mySettings, doc, 0);
//super.checkResultByFile("/com/wrq/rearranger/RearrangementTest28.java");
}
public final void testSettingsPanel() throws Exception {
Rearranger rearranger = new Rearranger();
SAXBuilder builder = new SAXBuilder();
org.jdom.Document doc = null;
try {
FileInputStream f = new FileInputStream(new File(DEFAULT_CONFIGURATION));
doc = builder.build(f);
f.close();
}
catch (JDOMException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
catch (FileNotFoundException e) {
File f = new File(DEFAULT_CONFIGURATION);
System.out.println(f.getAbsolutePath());
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
Element appElement = doc.getRootElement();
java.util.List componentList = appElement.getChildren();
Element rearrangerElement = null;
if (appElement.getName().equals("component") &&
appElement.getAttributeValue("name").equals(Rearranger.COMPONENT_NAME))
{
rearrangerElement = appElement;
}
else {
ListIterator li = componentList.listIterator();
while (li.hasNext())
// for (Element e : componentList)
{
Element e = (Element)li.next();
if (e.getAttributeValue("name").equals(Rearranger.COMPONENT_NAME)) {
rearrangerElement = e;
break;
}
}
}
if (rearrangerElement != null) {
rearranger.readExternal(rearrangerElement);
}
final JDialog frame = new JDialog((Frame)null, "SwingApplication");
final Constraints constraints = new Constraints(GridBagConstraints.NORTHWEST);
constraints.fill = GridBagConstraints.BOTH;
constraints.weightedLastRow();
RearrangerSettings settings = rearranger.getSettings();
final RearrangerSettingsPanel object = new RearrangerSettingsPanel(settings);
frame.getContentPane().setLayout(new GridBagLayout());
frame.getContentPane().add(object, constraints.weightedLastCol());
//Finish setting up the frame, and show it.
frame.pack();
frame.setResizable(true);
frame.setModal(true);
frame.setVisible(true);
final RearrangerSettings rs = object.settings.deepCopy();
assertTrue("Settings are unequal", rs.equals(object.settings));
System.out.println("Class Order");
ListIterator li;
for (Object o : object.settings.getClassOrderAttributeList()) {
if (o instanceof IPrioritizableRule) {
System.out.println(o + ", pri=" + ((Rule)o).getPriority());
}
else {
System.out.println(o);
}
}
System.out.println("Item order");
for (Object o : object.settings.getItemOrderAttributeList()) {
if (o instanceof IPrioritizableRule) {
System.out.println(o + ", pri=" + ((Rule)o).getPriority());
}
else {
System.out.println(o);
}
}
object.checkCommentsAgainstGlobalPattern(object.settings);
}
//public final void testSettingsPanel() throws Exception {
// Rearranger rearranger = new Rearranger();
// SAXBuilder builder = new SAXBuilder();
// org.jdom.Document doc = null;
// FileInputStream in = new FileInputStream(new File(DEFAULT_CONFIGURATION));
// try {
// doc = builder.build(in);
// }
// catch (JDOMException e) {
// e.printStackTrace();
// }
// catch (FileNotFoundException e) {
// File f = new File(DEFAULT_CONFIGURATION);
// System.out.println(f.getAbsolutePath());
// e.printStackTrace();
// }
// catch (IOException e) {
// e.printStackTrace();
// }
// finally {
// in.close();
// }
//
// assert doc != null;
// Element appElement = doc.getRootElement();
// java.util.List componentList = appElement.getChildren();
// Element rearrangerElement = null;
// if (appElement.getName().equals("component") &&
// appElement.getAttributeValue("name").equals(Rearranger.COMPONENT_NAME))
// {
// rearrangerElement = appElement;
// }
// else {
// for (Object aComponentList : componentList) {
// Element e = (Element)aComponentList;
// if (e.getAttributeValue("name").equals(Rearranger.COMPONENT_NAME)) {
// rearrangerElement = e;
// break;
// }
// }
// }
// if (rearrangerElement != null) {
// rearranger.readExternal(rearrangerElement);
// }
// final JDialog frame = new JDialog((Frame)null, "SwingApplication");
// final Constraints constraints = new Constraints(GridBagConstraints.NORTHWEST);
// constraints.fill = GridBagConstraints.BOTH;
// constraints.weightedLastRow();
// RearrangerSettings settings = rearranger.getSettings();
// final RearrangerSettingsPanel object = new RearrangerSettingsPanel(settings);
// frame.getContentPane().setLayout(new GridBagLayout());
// frame.getContentPane().add(object, constraints.weightedLastCol());
// //Finish setting up the frame, and show it.
// frame.pack();
// frame.setResizable(true);
// frame.setModal(true);
// frame.setVisible(true);
// final RearrangerSettings rs = object.settings.deepCopy();
// assertTrue("Settings are unequal", rs.equals(object.settings));
// System.out.println("Class Order");
// for (Object o : object.settings.getClassOrderAttributeList()) {
// if (o instanceof Rule && o instanceof PrioritizedRule) {
// System.out.println(o + ", pri=" + ((Rule)o).getPriority());
// }
// else {
// System.out.println(o);
// }
// }
// System.out.println("Item order");
// for (Object o : object.settings.getItemOrderAttributeList()) {
// if (o instanceof Rule && o instanceof PrioritizedRule) {
// System.out.println(o + ", pri=" + ((Rule)o).getPriority());
// }
// else {
// System.out.println(o);
// }
// }
// object.checkCommentsAgainstGlobalPattern(object.settings);
//}
}