RefactoringRope/RefactoringClient.py

Sun, 24 Sep 2017 11:56:11 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 24 Sep 2017 11:56:11 +0200
branch
server_client_variant
changeset 187
c7600eee9047
parent 186
d547caa795d7
child 188
05fb0977ce1b
permissions
-rw-r--r--

Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.

161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the refactoring client interface to rope.
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import sys
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import os
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 sys.path.insert(0, os.path.dirname(__file__))
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 if sys.version_info[0] >= 3:
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
17 rope_path = os.path.join(os.path.dirname(__file__), 'rope_py3')
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 else:
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
19 rope_path = os.path.join(os.path.dirname(__file__), 'rope_py2')
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
20 str = unicode # __IGNORE_WARNING__
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
21 sys.path.insert(0, rope_path)
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
23 import rope
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 import rope.base.project
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
25 import rope.base.libutils
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
27 from JsonClient import JsonClient
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
28 from ProgressHandle import ProgressHandle
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
30
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
31 class RefactoringClient(JsonClient):
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 Class implementing the refactoring client interface to rope.
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 def __init__(self, host, port, projectPath):
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Constructor
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param host ip address the background service is listening
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @type str
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @param port port of the background service
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @type int
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 @param projectPath path to the project
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @type str
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
46 super(RefactoringClient, self).__init__(host, port)
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
48 self.__methodMapping = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
49 "AbortAction": self.__abortAction,
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
50 "CloseProject": self.__closeProject,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
51 "Validate": self.__validate,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
52 "QueryReferences": self.__queryReferences,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
53 "QueryDefinition": self.__queryDefinition,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
54 "QueryImplementations": self.__queryImplementations,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
55 "GetConfig": self.__getConfig,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
56 "ConfigChanged": self.__configChanged,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
57 "PerformSoa": self.__performSOA,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
58 "ReportChanged": self.__reportChanged,
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
59 "History": self.__processHistory,
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
60 "PreviewChanges": self.__previewChanges,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
61 "ApplyChanges": self.__applyChanges,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
62 "ClearChanges": self.__clearChanges,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
63 "CalculateRenameChanges": self.__calculateRenameChanges,
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
64 "CalculateChangeOccurrencesChanges":
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
65 self.__calculateChangeOccurrencesChanges,
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
66 "CalculateExtractChanges": self.__calculateExtractChanges,
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
67 "RequestInlineType": self.__requestInlineType,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
68 "CalculateInlineChanges": self.__calculateInlineChanges,
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
69 "RequestMoveType": self.__requestMoveType,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
70 "CalculateMoveChanges": self.__calculateMoveChanges,
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
71 "RequestUseFunction": self.__requestUseFunction,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
72 "CalculateUseFunctionChanges": self.__calculateUseFunctionChanges,
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
73 "CalculateIntroduceFactoryChanges":
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
74 self.__calculateIntroduceFactoryChanges,
181
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
75 "CalculateIntroduceParameterChanges":
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
76 self.__calculateIntroduceParameterChanges,
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
77 "CalculateImportsChanges": self.__calculateImportsChanges,
183
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
78 "CalculateRestructureChanges": self.__calculateRestructureChanges,
184
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
79 "RequestSignature": self.__requestSignature,
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
80 "CalculateSignatureChanges": self.__calculateSignatureChanges,
185
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
81 "CalculateInlineArgumentDefaultChanges":
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
82 self.__calculateInlineArgumentDefaultChanges,
186
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
83 "CalculateModuleToPackageChanges":
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
84 self.__calculateModuleToPackageChanges,
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
85 "RequestFieldName": self.__requestFieldName,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
86 "CalculateEncapsulateFieldChanges":
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
87 self.__calculateEncapsulateFieldChanges,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
88 "CalculateLocalToAttributeChanges":
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
89 self.__calculateLocalToAttributeChanges,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
90 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
91
162
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
92 from FileSystemCommands import RefactoringClientFileSystemCommands
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
93 self.__fsCommands = RefactoringClientFileSystemCommands(self)
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
94
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 self.__projectpath = projectPath
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.__project = rope.base.project.Project(
162
55eaaed9d590 Implemented the distributed rope file system commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
97 self.__projectpath, fscommands=self.__fsCommands)
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 163
diff changeset
98
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 163
diff changeset
99 self.__progressHandle = None
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
100
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
101 self.__changes = {}
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
102 # dict storing the retrieved changes for various refactorings
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
104 def handleCall(self, method, params):
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
106 Public method to handle a method call from the server.
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
108 @param method requested method name
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
109 @type str
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
110 @param params dictionary with method specific parameters
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
111 @type dict
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
112 """
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
113 ## if "filename" in params and sys.version_info[0] == 2:
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
114 ## params["filename"] = params["filename"].encode(
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
115 ## sys.getfilesystemencoding())
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
117 self.__methodMapping[method](params)
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
118
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
119 def __handleRopeError(self, err):
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
120 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
121 Private method to process a rope error.
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
122
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
123 @param err rope exception object
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
124 @type Exception
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
125 @return dictionary containing the error information
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
126 @rtype dict
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
127 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
128 ropeError = str(type(err)).split()[-1]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
129 ropeError = ropeError[1:-2].split('.')[-1]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
130 errorDict = {
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
131 "Error": ropeError,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
132 "ErrorString": str(err),
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
133 }
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
134 if ropeError == 'ModuleSyntaxError':
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
135 errorDict["ErrorFile"] = err.filename
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
136 errorDict["ErrorLine"] = err.lineno
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
137
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
138 return errorDict
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
139
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
140 def __abortAction(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
141 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
142 Private method to abort the current action.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
143
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
144 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
145 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
146 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
147 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
148 if self.__progressHandle is not None and \
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
149 not self.__progressHandle.is_stopped():
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
150 self.__progressHandle.stop()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
151
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
152 def __validate(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
153 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
154 Private slot to validate the project.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
155
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
156 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
157 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
158 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
159 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
160 self.__project.validate(self.__project.root)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
161
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
162 def __closeProject(self, params):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
163 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
164 Private slot to validate the project.
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
165
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
166 @param params dictionary containing the method parameters sent by
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
167 the server
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
168 @type dict
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
169 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
170 self.__project.close()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
171
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
172 def __getConfig(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
173 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
174 Private method to send some configuration data to the server.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
175
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
176 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
177 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
178 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
179 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
180 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
181 "RopeFolderName": self.__project.ropefolder.real_path,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
182 "DefaultConfig": self.__project._default_config(),
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
183 "RopeHelpFile": os.path.join(
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
184 rope_path, "rope", "docs", "overview.txt"),
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
185 "RopeInfo": rope.INFO,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
186 "RopeVersion": rope.VERSION,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
187 "RopeCopyright": rope.COPYRIGHT,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
188 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
189
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
190 self.sendJson("Config", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
191
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
192 def __configChanged(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
193 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
194 Private method to handle a change of the configuration file.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
195
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
196 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
197 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
198 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
199 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
200 self.__project.close()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
201 self.__project = rope.base.project.Project(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
202 self.__projectpath, fscommands=self.__fsCommands)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
203
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
204 def __queryReferences(self, params):
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
205 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
206 Private method to handle the Find References action.
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
207
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
208 @param params dictionary containing the method parameters sent by
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
209 the server
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
210 @type dict
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
211 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
212 title = params["Title"]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
213 filename = params["FileName"]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
214 offset = params["Offset"]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
215
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
216 errorDict = {}
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
217 occurrences = []
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
218
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
219 import rope.contrib.findit
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
220 resource = rope.base.libutils.path_to_resource(
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
221 self.__project, filename)
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
222 self.__progressHandle = ProgressHandle(self, title, True)
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
223 try:
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
224 occurrences = rope.contrib.findit.find_occurrences(
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
225 self.__project, resource, offset,
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
226 unsure=True, in_hierarchy=True,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
227 task_handle=self.__progressHandle)
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
228 except Exception as err:
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
229 errorDict = self.__handleRopeError(err)
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
230 self.__progressHandle.reset()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
231 self.__progressHandle = None
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
232
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
233 result = {
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
234 "Title": title,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
235 "EntriesCount": len(occurrences),
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
236 "Entries": [
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
237 [occurrence.resource.real_path, occurrence.lineno,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
238 occurrence.unsure] for occurrence in occurrences
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
239 ],
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
240 }
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
241 result.update(errorDict)
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
242
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
243 self.sendJson("QueryReferencesResult", result)
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
244
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
245 def __queryDefinition(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
246 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
247 Private method to handle the Find Definition action.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
248
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
249 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
250 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
251 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
252 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
253 title = params["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
254 filename = params["FileName"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
255 offset = params["Offset"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
256 source = params["Source"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
257 subcommand = params["Subcommand"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
258
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
259 errorDict = {}
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
260 location = None
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
261
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
262 import rope.contrib.findit
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
263 resource = rope.base.libutils.path_to_resource(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
264 self.__project, filename)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
265 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
266 location = rope.contrib.findit.find_definition(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
267 self.__project, source, offset, resource)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
268 except Exception as err:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
269 errorDict = self.__handleRopeError(err)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
270
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
271 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
272 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
273 "Subcommand": subcommand,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
274 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
275 if location is not None:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
276 result["Location"] = [
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
277 location.resource.real_path, location.lineno
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
278 ]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
279 result.update(errorDict)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
280
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
281 self.sendJson("QueryDefinitionResult", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
282
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
283 def __queryImplementations(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
284 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
285 Private method to handle the Find Implementations action.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
286
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
287 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
288 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
289 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
290 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
291 title = params["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
292 filename = params["FileName"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
293 offset = params["Offset"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
294
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
295 errorDict = {}
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
296 occurrences = []
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
297
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
298 import rope.contrib.findit
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
299 resource = rope.base.libutils.path_to_resource(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
300 self.__project, filename)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
301 self.__progressHandle = ProgressHandle(self, title, True)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
302 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
303 occurrences = rope.contrib.findit.find_implementations(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
304 self.__project, resource, offset,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
305 task_handle=self.__progressHandle)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
306 except Exception as err:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
307 errorDict = self.__handleRopeError(err)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
308 self.__progressHandle.reset()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
309 self.__progressHandle = None
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
310
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
311 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
312 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
313 "EntriesCount": len(occurrences),
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
314 "Entries": [
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
315 [occurrence.resource.real_path, occurrence.lineno,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
316 occurrence.unsure] for occurrence in occurrences
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
317 ],
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
318 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
319 result.update(errorDict)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
320
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
321 self.sendJson("QueryImplementationsResult", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
322
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
323 def __performSOA(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
324 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
325 Private method to perform SOA on all modules.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
326
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
327 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
328 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
329 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
330 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
331 title = params["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
332
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
333 errorDict = {}
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
334
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
335 self.__progressHandle = ProgressHandle(self, title, True)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
336 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
337 rope.base.libutils.analyze_modules(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
338 self.__project, task_handle=self.__progressHandle)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
339 except Exception as err:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
340 errorDict = self.__handleRopeError(err)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
341 self.__progressHandle.reset()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
342 self.__progressHandle = None
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
343
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
344 result = {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
345 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
346 }
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
347 result.update(errorDict)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
348
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
349 self.sendJson("SoaFinished", result)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
350
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
351 def __reportChanged(self, params):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
352 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
353 Private method to register some changed sources.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
354
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
355 @param params dictionary containing the method parameters sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
356 the server
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
357 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
358 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
359 filename = params["FileName"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
360 oldSource = params["OldSource"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
361
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
362 try:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
363 rope.base.libutils.report_change(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
364 self.__project, filename, oldSource)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
365 except Exception:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
366 # simply ignore it
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
367 pass
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
368
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
369 def __processHistory(self, params):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
370 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
371 Private method to process the various history related requests.
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
372
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
373 @param params dictionary containing the method parameters sent by
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
374 the server
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
375 @type dict
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
376 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
377 subcommand = params["Subcommand"]
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
378 if subcommand == "Get":
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
379 changes = {}
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
380 if params["Filename"]:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
381 # file history
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
382 resource = rope.base.libutils.path_to_resource(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
383 self.__project, params["Filename"])
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
384 undoList = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
385 for change in reversed(self.__project.history.undo_list):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
386 if resource in change.get_changed_resources():
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
387 undoList.append(change)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
388 redoList = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
389 for change in self.__project.history.redo_list:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
390 if resource in change.get_changed_resources():
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
391 redoList.append(change)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
392 else:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
393 # project history
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
394 undoList = list(reversed(self.__project.history.undo_list))
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
395 redoList = self.__project.history.redo_list
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
396
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
397 result = {"Subcommand": "Histories"}
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
398 result["Undo"] = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
399 for change in undoList:
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
400 changes[id(change)] = change
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
401 result["Undo"].append([str(change), id(change)])
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
402 result["Redo"] = []
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
403 for change in redoList:
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
404 changes[id(change)] = change
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
405 result["Redo"].append([str(change), id(change)])
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
406
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
407 self.__changes["History"] = changes
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
408
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
409 self.sendJson("HistoryResult", result)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
410
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
411 elif subcommand == "GetChange":
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
412 result = {
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
413 "Subcommand": "ChangeDescription",
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
414 "Description":
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
415 self.__changes["History"][params["Id"]].get_description()
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
416 }
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
417
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
418 self.sendJson("HistoryResult", result)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
419
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
420 elif subcommand in ["Undo", "Redo"]:
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
421 change = self.__changes["History"][params["Id"]]
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
422 self.__progressHandle = ProgressHandle(self, change.description,
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
423 False)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
424 if subcommand == "Undo":
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
425 self.__project.history.undo(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
426 change, task_handle=self.__progressHandle)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
427 else:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
428 self.__project.history.redo(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
429 change, task_handle=self.__progressHandle)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
430 self.__progressHandle.reset()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
431 self.__progressHandle = None
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
432
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
433 result = {
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
434 "Subcommand": subcommand,
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
435 "ChangedFiles": [
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
436 res.real_path for res in change.get_changed_resources()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
437 ],
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
438 }
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
439
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
440 self.sendJson("HistoryResult", result)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
441
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
442 elif subcommand == "Clear":
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
443 self.__project.history.clear()
170
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
444
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
445 elif subcommand == "ClearChanges":
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
446 try:
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
447 del self.__changes["History"]
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
448 except KeyError:
05ef7c12a6d4 Modified the client side to keep multiple change caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
449 pass
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
450
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
451 def __clearChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
452 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
453 Private method to clear the changes cache of a given change group.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
454
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
455 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
456 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
457 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
458 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
459 try:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
460 del self.__changes[params["ChangeGroup"]]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
461 except KeyError:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
462 pass
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
463
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
464 def __applyChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
465 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
466 Private method to apply the changes of a given change group.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
467
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
468 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
469 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
470 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
471 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
472 errorDict = {}
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
473
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
474 self.__progressHandle = ProgressHandle(self, params["Title"], False)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
475 try:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
476 changes = self.__changes[params["ChangeGroup"]]
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
477 if changes is not None:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
478 self.__project.do(changes, self.__progressHandle)
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
479 except Exception as err:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
480 errorDict = self.__handleRopeError(err)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
481 self.__progressHandle.reset()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
482 self.__progressHandle = None
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
483
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
484 result = {
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
485 "Subcommand": "ChangesApplied",
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
486 "ChangeGroup": params["ChangeGroup"],
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
487 "Title": params["Title"],
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
488 "ChangedFiles": [
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
489 res.real_path for res in changes.get_changed_resources()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
490 ],
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
491 }
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
492 result.update(errorDict)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
493
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
494 self.sendJson("Changes", result)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
495
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
496 def __previewChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
497 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
498 Private method to determine the changes data for a preview.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
499
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
500 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
501 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
502 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
503 """
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
504 try:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
505 changes = self.__changes[params["ChangeGroup"]]
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
506 description = changes.description
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
507 except KeyError:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
508 changes = None
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
509 description = ""
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
510
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
511 changesData = []
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
512 if changes is not None:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
513 for change in changes.changes:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
514 changeTitle = str(change)
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
515 try:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
516 changeText = change.get_description()
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
517 except AttributeError:
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
518 changeText = None
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
519 changesData.append([changeTitle, changeText])
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
520
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
521 result = {
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
522 "Subcommand": "PreviewChanges",
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
523 "ChangeGroup": params["ChangeGroup"],
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
524 "Description": description,
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
525 "Changes": changesData,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
526 }
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
527
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
528 self.sendJson("Changes", result)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
529
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
530 def __calculateRenameChanges(self, params):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
531 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
532 Private method to calculate the rename changes based on the parameters
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
533 sent by the server.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
534
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
535 @param params dictionary containing the method parameters sent by
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
536 the server
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
537 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
538 """
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
539 changeGroup = params["ChangeGroup"]
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
540 title = params["Title"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
541 filename = params["FileName"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
542 offset = params["Offset"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
543 isLocal = params["LocalRename"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
544 newName = params["NewName"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
545 renameHierarchy = params["RenameHierarchy"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
546 renameInStrings = params["RenameInStrings"]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
547
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
548 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
549 changes = None
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
550 result = {
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
551 "ChangeGroup": changeGroup,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
552 "Title": title,
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
553 }
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
554
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
555 import rope.refactor.rename
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
556 resource = rope.base.libutils.path_to_resource(
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
557 self.__project, filename)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
558
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
559 if isLocal:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
560 resources = [resource]
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
561 else:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
562 resources = None
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
563
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
564 self.__progressHandle = ProgressHandle(self, title, True)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
565 try:
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
566 renamer = rope.refactor.rename.Rename(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
567 self.__project, resource, offset)
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
568 changes = renamer.get_changes(
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
569 newName,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
570 resources=resources,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
571 in_hierarchy=renameHierarchy,
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
572 unsure=lambda o: self.__confirmUnsure(o, changeGroup),
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
573 docs=renameInStrings,
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
574 task_handle=self.__progressHandle)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
575 except Exception as err:
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
576 errorDict = self.__handleRopeError(err)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
577 self.__progressHandle.reset()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
578 self.__progressHandle = None
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
579
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
580 self.__changes[changeGroup] = changes
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
581
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
582 result["Subcommand"] = "ChangesCalculated"
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
583 result.update(errorDict)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
584
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
585 self.sendJson("Changes", result)
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
586
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
587 def __confirmUnsure(self, occurrence, changeGroup):
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
588 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
589 Private method to confirm unsure occurrences.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
590
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
591 @parameter occurrence reference to the occurrence object
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
592 @type rope.refactor.occurrences.Occurrence
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
593 @param changeGroup name of the change group
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
594 @type str
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
595 @return flag indicating an occurrence
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
596 @rtype bool
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 170
diff changeset
597 """
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
598 filename = occurrence.resource.real_path
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
599 start, end = occurrence.get_primary_range()
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
600
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
601 self.sendJson("Changes", {
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
602 "Subcommand": "ConfirmUnsure",
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
603 "ChangeGroup": changeGroup,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
604 "FileName": filename,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
605 "StartOffset": start,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
606 "EndOffset": end,
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
607 })
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
608
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
609 answer = self.poll(waitMethod="ConfirmUnsure")
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
610
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
611 return answer["Answer"]
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
612
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
613 def __calculateChangeOccurrencesChanges(self, params):
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
614 """
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
615 Private method to calculate the 'Change Occurrences' changes based on
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
616 the parameters sent by the server.
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
617
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
618 @param params dictionary containing the method parameters sent by
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
619 the server
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
620 @type dict
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
621 """
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
622 changeGroup = params["ChangeGroup"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
623 title = params["Title"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
624 filename = params["FileName"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
625 offset = params["Offset"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
626 newName = params["NewName"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
627 onlyCalls = params["OnlyCalls"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
628 reads = params["Reads"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
629 writes = params["Writes"]
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
630
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
631 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
632 changes = None
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
633 result = {
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
634 "ChangeGroup": changeGroup,
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
635 "Title": title,
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
636 }
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
637
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
638 import rope.refactor.rename
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
639 resource = rope.base.libutils.path_to_resource(
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
640 self.__project, filename)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
641 try:
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
642 renamer = rope.refactor.rename.ChangeOccurrences(
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
643 self.__project, resource, offset)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
644 changes = renamer.get_changes(
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
645 newName, only_calls=onlyCalls, reads=reads, writes=writes)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
646 except Exception as err:
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
647 errorDict = self.__handleRopeError(err)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
648
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
649 self.__changes[changeGroup] = changes
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
650
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
651 result["Subcommand"] = "ChangesCalculated"
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
652 result.update(errorDict)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
653
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
654 self.sendJson("Changes", result)
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
655
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
656 def __calculateExtractChanges(self, params):
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
657 """
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
658 Private method to calculate the 'Extract' changes based on the
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
659 parameters sent by the server.
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
660
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
661 @param params dictionary containing the method parameters sent by
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
662 the server
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
663 @type dict
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
664 """
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
665 changeGroup = params["ChangeGroup"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
666 title = params["Title"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
667 filename = params["FileName"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
668 startOffset = params["StartOffset"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
669 endOffset = params["EndOffset"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
670 kind = params["Kind"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
671 newName = params["NewName"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
672 similar = params["Similar"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
673 global_ = params["Global"]
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
674
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
675 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
676 changes = None
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
677 result = {
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
678 "ChangeGroup": changeGroup,
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
679 "Title": title,
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
680 }
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
681
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
682 import rope.refactor.extract
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
683 resource = rope.base.libutils.path_to_resource(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
684 self.__project, filename)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
685 try:
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
686 if kind == "variable":
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
687 extractor = rope.refactor.extract.ExtractVariable(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
688 self.__project, resource, startOffset, endOffset)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
689 elif kind == "method":
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
690 extractor = rope.refactor.extract.ExtractMethod(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
691 self.__project, resource, startOffset, endOffset)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
692 else:
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
693 raise Exception("Invalid extraction kind <{0}>.".format(kind))
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
694 changes = extractor.get_changes(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
695 newName, similar=similar, global_=global_)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
696 except Exception as err:
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
697 errorDict = self.__handleRopeError(err)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
698
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
699 self.__changes[changeGroup] = changes
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
700
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
701 result["Subcommand"] = "ChangesCalculated"
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
702 result.update(errorDict)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
703
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
704 self.sendJson("Changes", result)
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
705
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
706 def __requestInlineType(self, params):
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
707 """
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
708 Private method to determine the 'Inline' changes type based on the
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
709 parameters sent by the server.
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
710
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
711 @param params dictionary containing the method parameters sent by
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
712 the server
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
713 @type dict
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
714 """
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
715 changeGroup = params["ChangeGroup"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
716 title = params["Title"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
717 filename = params["FileName"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
718 offset = params["Offset"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
719
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
720 errorDict = {}
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
721 result = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
722 "Subcommand": "InlineType",
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
723 "ChangeGroup": changeGroup,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
724 "Title": title,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
725 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
726
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
727 import rope.refactor.inline
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
728 resource = rope.base.libutils.path_to_resource(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
729 self.__project, filename)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
730 try:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
731 inliner = rope.refactor.inline.create_inline(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
732 self.__project, resource, offset)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
733 result.update({
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
734 "Name": inliner.name,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
735 "Kind": inliner.get_kind(),
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
736 })
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
737 except Exception as err:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
738 errorDict = self.__handleRopeError(err)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
739
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
740 result.update(errorDict)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
741
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
742 self.sendJson("Changes", result)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
743
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
744 def __calculateInlineChanges(self, params):
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
745 """
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
746 Private method to calculate the 'Inline' changes based on the
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
747 parameters sent by the server.
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
748
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
749 @param params dictionary containing the method parameters sent by
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
750 the server
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
751 @type dict
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
752 """
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
753 changeGroup = params["ChangeGroup"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
754 title = params["Title"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
755 filename = params["FileName"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
756 offset = params["Offset"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
757 kind = params["Kind"]
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
758
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
759 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
760 changes = None
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
761 result = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
762 "ChangeGroup": changeGroup,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
763 "Title": title,
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
764 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
765
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
766 import rope.refactor.extract
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
767 resource = rope.base.libutils.path_to_resource(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
768 self.__project, filename)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
769 self.__progressHandle = ProgressHandle(self, title, True)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
770 try:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
771 inliner = rope.refactor.inline.create_inline(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
772 self.__project, resource, offset)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
773 if kind == "parameter":
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
774 opts = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
775 "in_hierarchy": params["Hierarchy"],
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
776 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
777 else:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
778 opts = {
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
779 "remove": params["Remove"],
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
780 "only_current": params["OnlyCurrent"],
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
781 }
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
782 changes = inliner.get_changes(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
783 task_handle=self.__progressHandle, **opts)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
784 except Exception as err:
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
785 errorDict = self.__handleRopeError(err)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
786 self.__progressHandle.reset()
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
787 self.__progressHandle = None
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
788
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
789 self.__changes[changeGroup] = changes
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
790
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
791 result["Subcommand"] = "ChangesCalculated"
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
792 result.update(errorDict)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
793
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
794 self.sendJson("Changes", result)
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
795
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
796 def __requestMoveType(self, params):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
797 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
798 Private method to determine the 'Move Method' changes type based on the
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
799 parameters sent by the server.
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
800
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
801 @param params dictionary containing the method parameters sent by
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
802 the server
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
803 @type dict
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
804 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
805 changeGroup = params["ChangeGroup"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
806 title = params["Title"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
807 filename = params["FileName"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
808 offset = params["Offset"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
809
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
810 errorDict = {}
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
811 result = {
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
812 "Subcommand": "MoveType",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
813 "ChangeGroup": changeGroup,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
814 "Title": title,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
815 }
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
816
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
817 import rope.refactor.move
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
818 resource = rope.base.libutils.path_to_resource(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
819 self.__project, filename)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
820 try:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
821 mover = rope.refactor.move.create_move(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
822 self.__project, resource, offset)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
823 if isinstance(mover, rope.refactor.move.MoveGlobal):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
824 result.update({
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
825 "Kind": "move_global_method",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
826 "Method": "",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
827 })
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
828 else:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
829 result.update({
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
830 "Kind": "move_method",
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
831 "Method": mover.get_method_name(),
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
832 })
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
833 except Exception as err:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
834 errorDict = self.__handleRopeError(err)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
835
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
836 result.update(errorDict)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
837
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
838 self.sendJson("Changes", result)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
839
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
840 def __calculateMoveChanges(self, params):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
841 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
842 Private method to calculate the 'Move ...' changes based on the
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
843 parameters sent by the server.
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
844
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
845 @param params dictionary containing the method parameters sent by
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
846 the server
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
847 @type dict
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
848 """
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
849 changeGroup = params["ChangeGroup"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
850 title = params["Title"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
851 filename = params["FileName"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
852 offset = params["Offset"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
853 kind = params["Kind"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
854 newName = params["NewName"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
855 attribute = params["Attribute"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
856 destination = params["DestinationModule"]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
857
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
858 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
859 changes = None
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
860 result = {
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
861 "ChangeGroup": changeGroup,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
862 "Title": title,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
863 }
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
864
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
865 import rope.refactor.move
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
866 resource = rope.base.libutils.path_to_resource(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
867 self.__project, filename)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
868 self.__progressHandle = ProgressHandle(self, title, True)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
869 try:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
870 mover = rope.refactor.move.create_move(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
871 self.__project, resource, offset)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
872 if kind == "move_method":
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
873 changes = mover.get_changes(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
874 attribute, newName, task_handle=self.__progressHandle)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
875 else:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
876 if kind == "move_global_method":
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
877 dest = self.__project.get_pycore().find_module(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
878 os.path.splitext(destination)[0])
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
879 else:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
880 # move_module
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
881 if destination.endswith(os.sep):
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
882 destination = destination[:-1]
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
883 dest = self.__project.get_pycore().find_module(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
884 destination)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
885 changes = mover.get_changes(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
886 dest, task_handle=self.__progressHandle)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
887 except Exception as err:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
888 errorDict = self.__handleRopeError(err)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
889 self.__progressHandle.reset()
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
890 self.__progressHandle = None
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
891
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
892 self.__changes[changeGroup] = changes
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
893
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
894 result["Subcommand"] = "ChangesCalculated"
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
895 result.update(errorDict)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
896
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
897 self.sendJson("Changes", result)
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
898
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
899 def __requestUseFunction(self, params):
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
900 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
901 Private method to determine the 'Use Function' function name based on
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
902 the parameters sent by the server.
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
903
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
904 @param params dictionary containing the method parameters sent by
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
905 the server
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
906 @type dict
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
907 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
908 changeGroup = params["ChangeGroup"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
909 title = params["Title"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
910 filename = params["FileName"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
911 offset = params["Offset"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
912
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
913 errorDict = {}
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
914 result = {
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
915 "Subcommand": "UseFunctionName",
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
916 "ChangeGroup": changeGroup,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
917 "Title": title,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
918 }
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
919
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
920 import rope.refactor.usefunction
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
921 resource = rope.base.libutils.path_to_resource(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
922 self.__project, filename)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
923 try:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
924 user = rope.refactor.usefunction.UseFunction(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
925 self.__project, resource, offset)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
926 result["FunctionName"] = user.get_function_name()
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
927 except Exception as err:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
928 errorDict = self.__handleRopeError(err)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
929
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
930 result.update(errorDict)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
931
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
932 self.sendJson("Changes", result)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
933
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
934 def __calculateUseFunctionChanges(self, params):
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
935 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
936 Private method to calculate the 'Use Function' changes based on the
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
937 parameters sent by the server.
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
938
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
939 @param params dictionary containing the method parameters sent by
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
940 the server
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
941 @type dict
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
942 """
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
943 changeGroup = params["ChangeGroup"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
944 title = params["Title"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
945 filename = params["FileName"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
946 offset = params["Offset"]
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
947
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
948 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
949 changes = None
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
950 result = {
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
951 "ChangeGroup": changeGroup,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
952 "Title": title,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
953 }
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
954
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
955 import rope.refactor.usefunction
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
956 resource = rope.base.libutils.path_to_resource(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
957 self.__project, filename)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
958 self.__progressHandle = ProgressHandle(self, title, True)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
959 try:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
960 user = rope.refactor.usefunction.UseFunction(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
961 self.__project, resource, offset)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
962 changes = user.get_changes(task_handle=self.__progressHandle)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
963 except Exception as err:
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
964 errorDict = self.__handleRopeError(err)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
965 self.__progressHandle.reset()
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
966 self.__progressHandle = None
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
967
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
968 self.__changes[changeGroup] = changes
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
969
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
970 result["Subcommand"] = "ChangesCalculated"
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
971 result.update(errorDict)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
972
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
973 self.sendJson("Changes", result)
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
974
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
975 def __calculateIntroduceFactoryChanges(self, params):
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
976 """
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
977 Private method to calculate the 'Introduce Factory' changes based on
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
978 the parameters sent by the server.
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
979
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
980 @param params dictionary containing the method parameters sent by
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
981 the server
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
982 @type dict
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
983 """
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
984 changeGroup = params["ChangeGroup"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
985 title = params["Title"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
986 filename = params["FileName"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
987 offset = params["Offset"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
988 factoryName = params["Name"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
989 globalFactory = params["GlobalFactory"]
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
990
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
991 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
992 changes = None
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
993 result = {
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
994 "ChangeGroup": changeGroup,
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
995 "Title": title,
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
996 }
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
997
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
998 import rope.refactor.introduce_factory
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
999 resource = rope.base.libutils.path_to_resource(
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1000 self.__project, filename)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1001 self.__progressHandle = ProgressHandle(self, title, True)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1002 try:
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1003 introducer = \
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1004 rope.refactor.introduce_factory.IntroduceFactoryRefactoring(
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1005 self.__project, resource, offset)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1006 changes = introducer.get_changes(
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1007 factoryName, global_factory=globalFactory,
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1008 task_handle=self.__progressHandle)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1009 except Exception as err:
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1010 errorDict = self.__handleRopeError(err)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1011 self.__progressHandle.reset()
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1012 self.__progressHandle = None
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1013
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1014 self.__changes[changeGroup] = changes
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1015
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1016 result["Subcommand"] = "ChangesCalculated"
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1017 result.update(errorDict)
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1018
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1019 self.sendJson("Changes", result)
181
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1020
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1021 def __calculateIntroduceParameterChanges(self, params):
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1022 """
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1023 Private method to calculate the 'Introduce Parameter' changes based on
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1024 the parameters sent by the server.
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1025
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1026 @param params dictionary containing the method parameters sent by
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1027 the server
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1028 @type dict
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1029 """
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1030 changeGroup = params["ChangeGroup"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1031 title = params["Title"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1032 filename = params["FileName"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1033 offset = params["Offset"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1034 parameterName = params["Name"]
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1035
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1036 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1037 changes = None
181
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1038 result = {
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1039 "ChangeGroup": changeGroup,
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1040 "Title": title,
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1041 }
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1042
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1043 import rope.refactor.introduce_parameter
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1044 resource = rope.base.libutils.path_to_resource(
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1045 self.__project, filename)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1046 try:
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1047 introducer = rope.refactor.introduce_parameter.IntroduceParameter(
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1048 self.__project, resource, offset)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1049 changes = introducer.get_changes(parameterName)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1050 except Exception as err:
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1051 errorDict = self.__handleRopeError(err)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1052
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1053 self.__changes[changeGroup] = changes
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1054
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1055 result["Subcommand"] = "ChangesCalculated"
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1056 result.update(errorDict)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1057
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1058 self.sendJson("Changes", result)
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1059
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1060 def __calculateImportsChanges(self, params):
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1061 """
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1062 Private method to calculate the 'Import' changes based on the
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1063 parameters sent by the server.
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1064
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1065 @param params dictionary containing the method parameters sent by
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1066 the server
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1067 @type dict
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1068 """
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1069 changeGroup = params["ChangeGroup"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1070 title = params["Title"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1071 filename = params["FileName"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1072 offset = params["Offset"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1073 methodName = params["MethodName"]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1074
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1075 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1076 changes = None
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1077 result = {
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1078 "ChangeGroup": changeGroup,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1079 "Title": title,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1080 }
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1081
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1082 from rope.refactor.importutils import ImportOrganizer
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1083 method = {
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1084 "organize_imports": ImportOrganizer.organize_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1085 "expand_star_imports": ImportOrganizer.expand_star_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1086 "relatives_to_absolutes": ImportOrganizer.relatives_to_absolutes,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1087 "froms_to_imports": ImportOrganizer.froms_to_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1088 "handle_long_imports": ImportOrganizer.handle_long_imports,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1089 }[methodName]
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1090 importOrganizer = ImportOrganizer(self.__project)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1091 resource = rope.base.libutils.path_to_resource(
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1092 self.__project, filename)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1093 try:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1094 changes = method(importOrganizer, resource, offset=offset)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1095 except Exception as err:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1096 errorDict = self.__handleRopeError(err)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1097
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1098 self.__changes[changeGroup] = changes
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1099
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1100 # send the change description first
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1101 if changes:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1102 description = changes.description
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1103 else:
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1104 description = ""
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1105 self.sendJson("Changes", {
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1106 "ChangeGroup": changeGroup,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1107 "Title": title,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1108 "Subcommand": "ChangeDescription",
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1109 "Description": description,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1110 })
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1111
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1112 result["Subcommand"] = "ChangesCalculated"
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1113 result.update(errorDict)
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1114
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1115 self.sendJson("Changes", result)
183
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1116
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1117 def __calculateRestructureChanges(self, params):
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1118 """
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1119 Private method to calculate the 'Restructure' changes based on the
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1120 parameters sent by the server.
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1121
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1122 @param params dictionary containing the method parameters sent by
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1123 the server
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1124 @type dict
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1125 """
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1126 changeGroup = params["ChangeGroup"]
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1127 title = params["Title"]
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1128 pattern = params["Pattern"]
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1129 goal = params["Goal"]
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1130 args = params["Args"]
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1131 imports = params["Imports"]
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1132
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1133 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1134 changes = None
183
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1135 result = {
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1136 "ChangeGroup": changeGroup,
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1137 "Title": title,
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1138 }
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1139
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1140 import rope.refactor.restructure
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1141 self.__project.validate(self.__project.root)
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1142 self.__progressHandle = ProgressHandle(self, title, True)
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1143 try:
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1144 restructuring = rope.refactor.restructure.Restructure(
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1145 self.__project, pattern, goal, args=args, imports=imports)
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1146 changes = restructuring.get_changes(
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1147 task_handle=self.__progressHandle)
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1148 except Exception as err:
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1149 errorDict = self.__handleRopeError(err)
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1150 self.__progressHandle.reset()
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1151 self.__progressHandle = None
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1152
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1153 self.__changes[changeGroup] = changes
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1154
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1155 result["Subcommand"] = "ChangesCalculated"
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1156 result.update(errorDict)
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1157
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1158 self.sendJson("Changes", result)
184
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1159
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1160 def __requestSignature(self, params):
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1161 """
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1162 Private method to calculate the 'Signature' based on the parameters
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1163 sent by the server.
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1164
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1165 @param params dictionary containing the method parameters sent by
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1166 the server
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1167 @type dict
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1168 """
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1169 changeGroup = params["ChangeGroup"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1170 title = params["Title"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1171 filename = params["FileName"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1172 offset = params["Offset"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1173
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1174 errorDict = {}
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1175 result = {
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1176 "Subcommand": "Signature",
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1177 "ChangeGroup": changeGroup,
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1178 "Title": title,
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1179 }
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1180
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1181 import rope.refactor.change_signature
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1182 resource = rope.base.libutils.path_to_resource(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1183 self.__project, filename)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1184 try:
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1185 changer = rope.refactor.change_signature.ChangeSignature(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1186 self.__project, resource, offset)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1187 result["DefinitionInfo"] = changer.get_args()
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1188 except Exception as err:
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1189 errorDict = self.__handleRopeError(err)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1190
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1191 result.update(errorDict)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1192
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1193 self.sendJson("Changes", result)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1194
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1195 def __calculateSignatureChanges(self, params):
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1196 """
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1197 Private method to calculate the 'Signature' changes based on the
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1198 parameters sent by the server.
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1199
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1200 @param params dictionary containing the method parameters sent by
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1201 the server
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1202 @type dict
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1203 """
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1204 changeGroup = params["ChangeGroup"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1205 title = params["Title"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1206 filename = params["FileName"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1207 offset = params["Offset"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1208 removals = params["Removals"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1209 additions = params["Additions"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1210 newOrdering = params["Ordering"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1211 autodef = params["AutoDef"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1212 doHierarchy = params["Hierarchy"]
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1213
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1214 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1215 changes = None
184
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1216 result = {
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1217 "ChangeGroup": changeGroup,
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1218 "Title": title,
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1219 }
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1220
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1221 changers = []
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1222 import rope.refactor.change_signature
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1223 # removals
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1224 for index in removals:
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1225 remover = rope.refactor.change_signature.ArgumentRemover(index)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1226 changers.append(remover)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1227 # additions
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1228 for index, name, default, value in additions:
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1229 adder = rope.refactor.change_signature.ArgumentAdder(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1230 index, name, default, value)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1231 changers.append(adder)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1232 # new ordering
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1233 changers.append(rope.refactor.change_signature.ArgumentReorderer(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1234 newOrdering, autodef=autodef))
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1235
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1236 resource = rope.base.libutils.path_to_resource(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1237 self.__project, filename)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1238 self.__progressHandle = ProgressHandle(self, title, True)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1239 try:
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1240 changer = rope.refactor.change_signature.ChangeSignature(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1241 self.__project, resource, offset)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1242 changes = changer.get_changes(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1243 changers, in_hierarchy=doHierarchy,
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1244 task_handle=self.__progressHandle)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1245 except Exception as err:
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1246 errorDict = self.__handleRopeError(err)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1247 self.__progressHandle.reset()
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1248 self.__progressHandle = None
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1249
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1250 self.__changes[changeGroup] = changes
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1251
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1252 result["Subcommand"] = "ChangesCalculated"
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1253 result.update(errorDict)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1254
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1255 self.sendJson("Changes", result)
185
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1256
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1257 def __calculateInlineArgumentDefaultChanges(self, params):
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1258 """
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1259 Private method to calculate the 'Inline Argument Default' changes
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1260 based on the parameters sent by the server.
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1261
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1262 @param params dictionary containing the method parameters sent by
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1263 the server
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1264 @type dict
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1265 """
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1266 changeGroup = params["ChangeGroup"]
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1267 title = params["Title"]
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1268 filename = params["FileName"]
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1269 offset = params["Offset"]
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1270 argumentIndex = params["Index"]
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1271
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1272 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1273 changes = None
185
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1274 result = {
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1275 "ChangeGroup": changeGroup,
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1276 "Title": title,
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1277 }
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1278
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1279 resource = rope.base.libutils.path_to_resource(
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1280 self.__project, filename)
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1281 self.__progressHandle = ProgressHandle(self, title, True)
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1282 try:
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1283 changer = rope.refactor.change_signature.ChangeSignature(
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1284 self.__project, resource, offset)
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1285 inliner = rope.refactor.change_signature.ArgumentDefaultInliner(
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1286 argumentIndex)
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1287 changes = changer.get_changes(
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1288 [inliner], task_handle=self.__progressHandle)
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1289 except Exception as err:
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1290 errorDict = self.__handleRopeError(err)
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1291 self.__progressHandle.reset()
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1292 self.__progressHandle = None
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1293
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1294 self.__changes[changeGroup] = changes
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1295
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1296 result["Subcommand"] = "ChangesCalculated"
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1297 result.update(errorDict)
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1298
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1299 self.sendJson("Changes", result)
186
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1300
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1301 def __calculateModuleToPackageChanges(self, params):
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1302 """
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1303 Private method to calculate the 'Module to Package' changes
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1304 based on the parameters sent by the server.
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1305
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1306 @param params dictionary containing the method parameters sent by
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1307 the server
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1308 @type dict
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1309 """
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1310 changeGroup = params["ChangeGroup"]
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1311 title = params["Title"]
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1312 filename = params["FileName"]
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1313
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1314 errorDict = {}
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1315 changes = None
186
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1316 result = {
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1317 "ChangeGroup": changeGroup,
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1318 "Title": title,
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1319 }
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1320
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1321 import rope.refactor.topackage
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1322 resource = rope.base.libutils.path_to_resource(
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1323 self.__project, filename)
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1324 try:
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1325 changes = rope.refactor.topackage.ModuleToPackage(
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1326 self.__project, resource).get_changes()
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1327 except Exception as err:
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1328 errorDict = self.__handleRopeError(err)
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1329
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1330 self.__changes[changeGroup] = changes
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1331
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1332 # send the change description first
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1333 if changes:
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1334 description = changes.description
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1335 else:
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1336 description = ""
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1337 self.sendJson("Changes", {
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1338 "ChangeGroup": changeGroup,
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1339 "Title": title,
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1340 "Subcommand": "ChangeDescription",
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1341 "Description": description,
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1342 })
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1343
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1344 result["Subcommand"] = "ChangesCalculated"
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1345 result.update(errorDict)
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1346
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1347 self.sendJson("Changes", result)
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1348
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1349 def __requestFieldName(self, params):
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1350 """
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1351 Private method to calculate the 'Field Name' based on the parameters
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1352 sent by the server.
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1353
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1354 @param params dictionary containing the method parameters sent by
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1355 the server
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1356 @type dict
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1357 """
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1358 changeGroup = params["ChangeGroup"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1359 title = params["Title"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1360 filename = params["FileName"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1361 offset = params["Offset"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1362
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1363 errorDict = {}
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1364 result = {
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1365 "Subcommand": "FieldName",
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1366 "ChangeGroup": changeGroup,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1367 "Title": title,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1368 }
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1369
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1370 import rope.refactor.encapsulate_field
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1371 resource = rope.base.libutils.path_to_resource(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1372 self.__project, filename)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1373 try:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1374 encapsulateField = \
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1375 rope.refactor.encapsulate_field.EncapsulateField(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1376 self.__project, resource, offset)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1377 result["Name"] = encapsulateField.get_field_name()
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1378 except Exception as err:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1379 errorDict = self.__handleRopeError(err)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1380
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1381 result.update(errorDict)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1382
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1383 self.sendJson("Changes", result)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1384
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1385 def __calculateEncapsulateFieldChanges(self, params):
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1386 """
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1387 Private method to calculate the 'Encapsulate Field' changes based on
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1388 the parameters sent by the server.
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1389
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1390 @param params dictionary containing the method parameters sent by
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1391 the server
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1392 @type dict
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1393 """
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1394 changeGroup = params["ChangeGroup"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1395 title = params["Title"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1396 filename = params["FileName"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1397 offset = params["Offset"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1398 getter = params["Getter"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1399 setter = params["Setter"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1400
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1401 errorDict = {}
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1402 changes = None
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1403 result = {
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1404 "ChangeGroup": changeGroup,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1405 "Title": title,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1406 }
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1407
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1408 import rope.refactor.encapsulate_field
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1409 resource = rope.base.libutils.path_to_resource(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1410 self.__project, filename)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1411 self.__progressHandle = ProgressHandle(self, title, True)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1412 try:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1413 encapsulateField = \
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1414 rope.refactor.encapsulate_field.EncapsulateField(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1415 self.__project, resource, offset)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1416 changes = encapsulateField.get_changes(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1417 getter=getter, setter=setter,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1418 task_handle=self.__progressHandle)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1419 except Exception as err:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1420 errorDict = self.__handleRopeError(err)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1421 self.__progressHandle.reset()
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1422 self.__progressHandle = None
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1423
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1424 self.__changes[changeGroup] = changes
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1425
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1426 result["Subcommand"] = "ChangesCalculated"
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1427 result.update(errorDict)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1428
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1429 self.sendJson("Changes", result)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1430
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1431 def __calculateLocalToAttributeChanges(self, params):
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1432 """
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1433 Private method to calculate the 'Local Variabe to Attribute' changes
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1434 based on the parameters sent by the server.
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1435
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1436 @param params dictionary containing the method parameters sent by
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1437 the server
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1438 @type dict
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1439 """
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1440 changeGroup = params["ChangeGroup"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1441 title = params["Title"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1442 filename = params["FileName"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1443 offset = params["Offset"]
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1444
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1445 errorDict = {}
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1446 changes = None
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1447 result = {
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1448 "ChangeGroup": changeGroup,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1449 "Title": title,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1450 }
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1451
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1452 import rope.refactor.localtofield
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1453 resource = rope.base.libutils.path_to_resource(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1454 self.__project, filename)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1455 try:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1456 changes = rope.refactor.localtofield.LocalToField(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1457 self.__project, resource, offset).get_changes()
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1458 except Exception as err:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1459 errorDict = self.__handleRopeError(err)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1460
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1461 self.__changes[changeGroup] = changes
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1462
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1463 # send the change description first
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1464 if changes:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1465 description = changes.description
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1466 else:
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1467 description = ""
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1468 self.sendJson("Changes", {
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1469 "ChangeGroup": changeGroup,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1470 "Title": title,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1471 "Subcommand": "ChangeDescription",
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1472 "Description": description,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1473 })
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1474
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1475 result["Subcommand"] = "ChangesCalculated"
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1476 result.update(errorDict)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1477
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1478 self.sendJson("Changes", result)
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1479
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1480
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1481 if __name__ == '__main__':
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1482 if len(sys.argv) != 4:
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1483 print('Host, port and project path parameters are missing. Abort.')
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1484 sys.exit(1)
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1485
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1486 host, port, projectPath = sys.argv[1:]
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1487 client = RefactoringClient(host, int(port), projectPath)
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1488 # Start the main loop
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1489 client.run()
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1490
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1491 sys.exit(0)
161
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1492
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1493 #
f5d6fb1a009b Added the client file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1494 # eflag: noqa = M801

eric ide

mercurial