Skip to content

Commit 7d8567d

Browse files
committed
fix bugs of pattern load
1 parent cfffdda commit 7d8567d

File tree

8 files changed

+40
-84
lines changed

8 files changed

+40
-84
lines changed

src/main/java/GlobalSearch.java

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,10 @@
1-
import com.intellij.codeInsight.completion.AllClassesGetter;
2-
import com.intellij.codeInsight.completion.PlainPrefixMatcher;
3-
import com.intellij.diff.DiffContentFactory;
4-
import com.intellij.diff.DiffManagerImpl;
5-
import com.intellij.diff.DiffRequestPanel;
6-
import com.intellij.diff.chains.DiffRequestChain;
7-
import com.intellij.diff.chains.DiffRequestProducer;
8-
import com.intellij.diff.chains.SimpleDiffRequestChain;
9-
import com.intellij.diff.contents.DiffContent;
10-
import com.intellij.diff.impl.CacheDiffRequestChainProcessor;
11-
import com.intellij.diff.impl.DiffRequestProcessor;
12-
import com.intellij.diff.requests.DiffRequest;
13-
import com.intellij.diff.requests.SimpleDiffRequest;
14-
import com.intellij.diff.tools.simple.SimpleDiffViewer;
15-
import com.intellij.diff.util.DiffUserDataKeys;
16-
import com.intellij.openapi.actionSystem.AnAction;
171
import com.intellij.openapi.actionSystem.AnActionEvent;
18-
import com.intellij.openapi.actionSystem.CommonDataKeys;
19-
import com.intellij.openapi.command.WriteCommandAction;
20-
import com.intellij.openapi.diff.SimpleContent;
21-
import com.intellij.openapi.editor.*;
22-
import com.intellij.openapi.editor.colors.TextAttributesKey;
23-
import com.intellij.openapi.editor.markup.TextAttributes;
24-
import com.intellij.openapi.fileTypes.FileType;
25-
import com.intellij.openapi.ui.DialogBuilder;
262
import com.intellij.openapi.util.Pair;
27-
import com.intellij.openapi.vfs.VirtualFile;
283
import com.intellij.psi.*;
294
import com.intellij.psi.codeStyle.CodeStyleManager;
30-
import com.intellij.psi.search.GlobalSearchScope;
31-
import com.intellij.ui.components.JBScrollBar;
32-
import com.intellij.ui.components.JBScrollPane;
33-
import com.intellij.util.Processor;
34-
import com.intellij.diff.DiffManager;
355

366
import javax.swing.*;
377
import java.awt.*;
38-
import java.util.ArrayList;
39-
import java.util.List;
408

419
public class GlobalSearch extends AnActionWithInit {
4210

@@ -51,7 +19,7 @@ public void actionPerformed(AnActionEvent e) {
5119

5220
CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(project);
5321

54-
MultiTransViewer viewer = new MultiTransViewer(project);
22+
TransListViewer viewer = new TransListViewer(project);
5523

5624
psiFile.acceptChildren(new JavaRecursiveElementVisitor() {
5725
@Override

src/main/java/MultiApplyAction.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,11 @@
1-
import com.intellij.openapi.actionSystem.AnAction;
21
import com.intellij.openapi.actionSystem.AnActionEvent;
3-
import com.intellij.openapi.command.WriteCommandAction;
4-
import com.intellij.openapi.editor.Editor;
5-
import com.intellij.openapi.ui.DialogBuilder;
62
import com.intellij.openapi.ui.Messages;
7-
import com.intellij.psi.JavaPsiFacade;
8-
import com.intellij.psi.PsiElement;
9-
import com.intellij.psi.PsiElementFactory;
103
import com.intellij.psi.PsiMethod;
114
import com.intellij.psi.codeStyle.CodeStyleManager;
12-
import com.intellij.ui.components.JBScrollPane;
13-
import com.intellij.ui.table.JBTable;
14-
import mfix.tools.Transformer;
155
import com.intellij.openapi.util.Pair;
166

177
import javax.swing.*;
18-
import javax.swing.table.DefaultTableModel;
198
import java.awt.*;
20-
import java.util.ArrayList;
21-
import java.util.HashSet;
229
import java.util.List;
2310

2411
public class MultiApplyAction extends AnActionWithInit {
@@ -41,7 +28,7 @@ public void actionPerformed(AnActionEvent e) {
4128
return;
4229
}
4330

44-
MultiTransViewer viewer = new MultiTransViewer(project);
31+
TransListViewer viewer = new TransListViewer(project);
4532
for (String p : candidates) {
4633
PsiMethod targetMethod = str2PsiMethod(p);
4734
codeStyleManager.reformat(targetMethod);

src/main/java/PatternLoadAction.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
11
import com.intellij.openapi.actionSystem.AnActionEvent;
2-
import com.intellij.openapi.command.WriteCommandAction;
32
import com.intellij.openapi.components.ServiceManager;
4-
import com.intellij.openapi.editor.Editor;
5-
import com.intellij.openapi.util.Pair;
6-
import com.intellij.psi.PsiElement;
7-
import com.intellij.ui.components.JBScrollPane;
83
import mfix.tools.Transformer;
94

105
import javax.swing.*;
116
import java.awt.*;
12-
import java.util.ArrayList;
13-
import java.util.Iterator;
14-
import java.util.List;
157

168
public class PatternLoadAction extends AnActionWithInit {
179

1810
@Override
1911
public void actionPerformed(AnActionEvent e) {
2012
GenpatService applicationService = ServiceManager.getService(GenpatService.class);
21-
MultiTransViewer viewer = new MultiTransViewer(project);
13+
TransListViewer viewer = new TransListViewer(project);
2214
for (Transformer trans : applicationService.getState().transList) {
2315
try {
2416
viewer.addTrans(trans);

src/main/java/TraceAction.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,13 @@ public void actionPerformed(AnActionEvent e) {
3333
return;
3434
}
3535

36-
// ApplyAction.transformer.loadPatternSrc(psiCurrentUnit.getText(), psiFile.getText(), classPath);
3736
Transformer newTrans = new Transformer();
3837

3938
newTrans.loadPatternSrc(methodTransPsi2Genpat((PsiMethod) psiCurrentUnit), psiFile.getText(), classPath);
4039
PsiElement newUnit;
4140
PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory();
42-
String inputStr, outputStr;
4341
try {
44-
inputStr = changeEditor(project, "JAVA", psiCurrentUnit.getText());
42+
String inputStr = changeEditor(project, "JAVA", psiCurrentUnit.getText());
4543
newUnit = factory.createMethodFromText(inputStr, null);
4644
if (!(newUnit instanceof PsiMethod)) {
4745
throw new Exception("Input is not a method!");

src/main/java/TraceInIDEEnd.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,14 @@ public void actionPerformed(AnActionEvent e) {
1515
return;
1616
}
1717

18-
ApplyAction.transformer.loadPatternTar(methodTransPsi2Genpat((PsiMethod) psiCurrentUnit), psiFile.getText(), classPath);
19-
ApplyAction.transformer.extractPattern();
18+
Transformer newTrans = new Transformer();
19+
newTrans.loadPatternSrc(methodTransPsi2Genpat((PsiMethod) TraceInIDEStart.startPsiElement), TraceInIDEStart.startText, classPath);
20+
newTrans.loadPatternTar(methodTransPsi2Genpat((PsiMethod) psiCurrentUnit), psiFile.getText(), classPath);
21+
newTrans.extractPattern();
22+
23+
ServiceManager.getService(GenpatService.class).addTrans(newTrans);
24+
ApplyAction.setTransformer(newTrans);
25+
2026
Messages.showMessageDialog(project, "Trace Finish!", "GenPat-Plugin", Messages.getInformationIcon());
2127
}
2228
}

src/main/java/TraceInIDEStart.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import com.intellij.openapi.actionSystem.AnActionEvent;
22
import com.intellij.openapi.ui.Messages;
3+
import com.intellij.psi.PsiElement;
34
import com.intellij.psi.PsiMethod;
45
import mfix.tools.Transformer;
56

67
public class TraceInIDEStart extends AnActionWithInit {
8+
static PsiElement startPsiElement;
9+
static String startText;
710

811
@Override
912
public void actionPerformed(AnActionEvent e) {
@@ -16,7 +19,7 @@ public void actionPerformed(AnActionEvent e) {
1619

1720
Messages.showMessageDialog(project, "Trace Start!", "GenPat-Plugin", Messages.getInformationIcon());
1821

19-
ApplyAction.transformer = new Transformer();
20-
ApplyAction.transformer.loadPatternSrc(methodTransPsi2Genpat((PsiMethod) psiCurrentUnit), psiFile.getText(), classPath);
22+
startPsiElement = psiCurrentUnit;
23+
startText = psiFile.getText();
2124
}
2225
}

src/main/java/MultiTransViewer.java renamed to src/main/java/TransListViewer.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
import javax.swing.*;
1717
import javax.swing.event.ListSelectionEvent;
1818
import javax.swing.event.ListSelectionListener;
19+
import java.awt.*;
20+
import java.text.SimpleDateFormat;
1921
import java.util.ArrayList;
2022
import java.util.List;
2123
import java.util.Vector;
2224

23-
public class MultiTransViewer extends JPanel
24-
implements ListSelectionListener {
25-
25+
public class TransListViewer extends JPanel implements ListSelectionListener {
2626
Project curProject;
2727
private int curIndex;
2828
private JPanel mainPanel;
@@ -54,12 +54,13 @@ public void addMatchedElement(Pair<PsiElement, PsiElement> matchedElement) {
5454

5555
public void addTrans(Transformer trans) {
5656
transformerList.add(trans);
57-
String transName = "#" + diffList.size();
58-
listModel.addElement(transName);
57+
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
58+
String dateStr = dateformat.format(System.currentTimeMillis());
59+
listModel.addElement(dateStr);
5960
addDiff(trans.getBeforeChangeCode(), trans.getAfterChangeCode());
6061
}
6162

62-
public MultiTransViewer(Project project) {
63+
public TransListViewer(Project project) {
6364
curProject = project;
6465
diffList = new Vector<>();
6566
matchedElementList = new ArrayList<>();
@@ -80,12 +81,15 @@ public MultiTransViewer(Project project) {
8081
DialogBuilder diffBuilder = new DialogBuilder(curProject);
8182
diffPanel = DiffManager.getInstance().createRequestPanel(curProject, diffBuilder, diffBuilder.getWindow());
8283
showDiff.add(diffPanel.getComponent());
84+
showDiff.setPreferredSize(new Dimension(1000,300));
8385

84-
JScrollPane pictureScrollPane = new JScrollPane(showDiff);
86+
JScrollPane diffScrollPane = new JScrollPane(showDiff);
8587

8688
//Create a split pane with the two scroll panes in it.
87-
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listScrollPane, pictureScrollPane);
89+
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listScrollPane, diffScrollPane);
90+
8891
splitPane.setOneTouchExpandable(true);
92+
splitPane.setDividerLocation(100);
8993

9094
mainPanel = new JPanel();
9195
mainPanel.add(splitPane);

src/main/resources/META-INF/plugin.xml

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,28 +27,26 @@
2727
<group id="genpat.GroupedActions" text="GenPat" popup="true">
2828
<add-to-group group-id="ToolsMenu" anchor="after" relative-to-action="genpat.GroupedActions"/>
2929

30-
<!-- <action id="genpat-PatternLoadAction" class="PatternLoadAction" text="LoadPattern">-->
31-
<!-- </action>-->
32-
33-
<!-- <action id="genpat.TraceInIDEStartAction" class="TraceInIDEStart" text="Local Trace Start">-->
34-
<!-- <keyboard-shortcut keymap="$default" first-keystroke="shift alt OPEN_BRACKET"/>-->
35-
<!-- </action>-->
36-
37-
<!-- <action id="genpat.TraceInIDEEndAction" class="TraceInIDEEnd" text="Local Trace End">-->
38-
<!-- <keyboard-shortcut keymap="$default" first-keystroke="shift alt CLOSE_BRACKET"/>-->
39-
<!-- </action>-->
40-
4130
<action id="genpat.GlobalSearch" class="GlobalSearch" text="Global Search">
4231
</action>
4332

4433
<action id="genpat.PatternLoadAction" class="PatternLoadAction" text="Pattern Load">
4534
</action>
35+
4636
<action id="genpat.PatternListCleanAction" class="PatternListCleanAction" text="Clean Pattern List">
4737
</action>
4838

39+
<action id="genpat.TraceInIDEStartAction" class="TraceInIDEStart" text="Local Trace Start">
40+
<keyboard-shortcut keymap="$default" first-keystroke="shift alt OPEN_BRACKET"/>
41+
</action>
42+
43+
<action id="genpat.TraceInIDEEndAction" class="TraceInIDEEnd" text="Local Trace End">
44+
<keyboard-shortcut keymap="$default" first-keystroke="shift alt CLOSE_BRACKET"/>
45+
</action>
46+
4947
</group>
5048

51-
<action id="genpat.MultiApplyAction" class="MultiApplyAction" text="MultiApplyAction" description="TODO">
49+
<action id="genpat.MultiApplyAction" class="MultiApplyAction" text="MultiApplyAction">
5250
<add-to-group group-id="EditorPopupMenu" anchor="first"/>
5351
</action>
5452

@@ -57,7 +55,7 @@
5755
<keyboard-shortcut keymap="$default" first-keystroke="shift alt EQUALS"/>
5856
</action>
5957

60-
<action id="genpat.TraceAction" class="TraceAction" text="Trace" description="TODO">
58+
<action id="genpat.TraceAction" class="TraceAction" text="Trace">
6159
<add-to-group group-id="EditorPopupMenu" anchor="first"/>
6260
<keyboard-shortcut keymap="$default" first-keystroke="shift alt MINUS"/>
6361
</action>

0 commit comments

Comments
 (0)