private void updateFinalState() { if (myHasWriteAccess && myCbDeclareFinal != null) { myCbDeclareFinal.setEnabled(!myPanel.isReplaceAllOccurences()); if (myPanel.isReplaceAllOccurences()) { myCbDeclareFinal.setSelected(false); } } }
protected void doAction() { final JavaRefactoringSettings settings = JavaRefactoringSettings.getInstance(); settings.INTRODUCE_PARAMETER_REPLACE_FIELDS_WITH_GETTERS = myPanel.getReplaceFieldsWithGetters(); if (myCbDeclareFinal != null && myCbDeclareFinal.isEnabled()) { settings.INTRODUCE_PARAMETER_CREATE_FINALS = Boolean.valueOf(myCbDeclareFinal.isSelected()); } myPanel.saveSettings(settings); myNameSuggestionsManager.nameSelected(); boolean isDeleteLocalVariable = false; PsiExpression parameterInitializer = myExpression; if (myLocalVar != null) { if (myPanel.isUseInitializer()) { parameterInitializer = myLocalVar.getInitializer(); } isDeleteLocalVariable = myPanel.isDeleteLocalVariable(); } final IntroduceParameterProcessor processor = new IntroduceParameterProcessor( myProject, myMethodToReplaceIn, myMethodToSearchFor, parameterInitializer, myExpression, myLocalVar, isDeleteLocalVariable, getParameterName(), myPanel.isReplaceAllOccurences(), myPanel.getReplaceFieldsWithGetters(), isDeclareFinal(), myPanel.isGenerateDelegate(), getSelectedType(), myPanel.getParametersToRemove()); invokeRefactoring(processor); myParameterNameField.requestFocusInWindow(); }
IntroduceParameterDialog( @NotNull Project project, @NotNull List<UsageInfo> classMembersList, PsiExpression[] occurences, PsiLocalVariable onLocalVariable, PsiExpression onExpression, @NotNull NameSuggestionsGenerator generator, @NotNull TypeSelectorManager typeSelectorManager, @NotNull PsiMethod methodToSearchFor, @NotNull PsiMethod methodToReplaceIn, @NotNull TIntArrayList parametersToRemove, final boolean mustBeFinal) { super(project, true); myPanel = new IntroduceParameterSettingsPanel( onLocalVariable, onExpression, methodToReplaceIn, parametersToRemove); myProject = project; myClassMembersList = classMembersList; myOccurenceNumber = occurences.length; for (PsiExpression occurence : occurences) { if (PsiUtil.isAccessedForWriting(occurence)) { myHasWriteAccess = true; break; } } myExpression = onExpression; myLocalVar = onLocalVariable; myMethodToReplaceIn = methodToReplaceIn; myMustBeFinal = mustBeFinal; myMethodToSearchFor = methodToSearchFor; myNameSuggestionsGenerator = generator; myTypeSelectorManager = typeSelectorManager; setTitle(REFACTORING_NAME); init(); myPanel.updateTypeSelector(); }
public void setGenerateDelegate(boolean delegate) { myPanel.setGenerateDelegate(delegate); }
public void setReplaceAllOccurrences(boolean replaceAllOccurrences) { myPanel.setReplaceAllOccurrences(replaceAllOccurrences); }
protected JComponent createCenterPanel() { if (Util.anyFieldsWithGettersPresent(myClassMembersList)) { return myPanel.createReplaceFieldsWithGettersPanel(); } else return null; }
protected JComponent createNorthPanel() { GridBagConstraints gbConstraints = new GridBagConstraints(); JPanel panel = new JPanel(new GridBagLayout()); gbConstraints.anchor = GridBagConstraints.WEST; gbConstraints.fill = GridBagConstraints.NONE; gbConstraints.gridx = 0; gbConstraints.insets = new Insets(4, 4, 4, 0); gbConstraints.gridwidth = 1; gbConstraints.weightx = 0; gbConstraints.weighty = 0; gbConstraints.gridy = 0; JLabel type = new JLabel(RefactoringBundle.message("parameter.of.type")); panel.add(type, gbConstraints); gbConstraints.insets = new Insets(4, 4, 4, 8); gbConstraints.gridx++; gbConstraints.weightx = 1; gbConstraints.fill = GridBagConstraints.BOTH; myTypeSelector = myTypeSelectorManager.getTypeSelector(); panel.add(myTypeSelector.getComponent(), gbConstraints); gbConstraints.insets = new Insets(4, 4, 4, 8); gbConstraints.gridwidth = 1; gbConstraints.weightx = 0; gbConstraints.gridx = 0; gbConstraints.gridy = 1; gbConstraints.fill = GridBagConstraints.NONE; myParameterNameField = new NameSuggestionsField(myProject); final JLabel nameLabel = new JLabel(RefactoringBundle.message("name.prompt")); nameLabel.setLabelFor(myParameterNameField.getComponent()); panel.add(nameLabel, gbConstraints); /* if (myNameSuggestions.length > 1) { myParameterNameField = createComboBoxForName(); } else { myParameterNameField = createTextFieldForName(); } */ gbConstraints.gridx++; gbConstraints.insets = new Insets(4, 4, 4, 8); gbConstraints.weightx = 1; gbConstraints.fill = GridBagConstraints.BOTH; panel.add(myParameterNameField.getComponent(), gbConstraints); myParameterNameChangedListener = new NameSuggestionsField.DataChanged() { public void dataChanged() { validateButtons(); } }; myParameterNameField.addDataChangedListener(myParameterNameChangedListener); myNameSuggestionsManager = new NameSuggestionsManager( myTypeSelector, myParameterNameField, myNameSuggestionsGenerator); myNameSuggestionsManager.setLabelsFor(type, nameLabel); gbConstraints.gridx = 0; gbConstraints.insets = new Insets(4, 0, 4, 8); gbConstraints.gridwidth = 2; if (myOccurenceNumber > 1 && !myPanel.myIsInvokedOnDeclaration) { gbConstraints.gridy++; myPanel.createOccurrencesCb(gbConstraints, panel, myOccurenceNumber); } if (myPanel.myCbReplaceAllOccurences != null) { gbConstraints.insets = new Insets(0, 16, 4, 8); } JavaRefactoringSettings settings = JavaRefactoringSettings.getInstance(); myPanel.createLocalVariablePanel(gbConstraints, panel, settings); myPanel.createRemoveParamsPanel(gbConstraints, panel); gbConstraints.insets = new Insets(4, 0, 4, 8); gbConstraints.gridy++; myCbDeclareFinal = new NonFocusableCheckBox(RefactoringBundle.message("declare.final")); final Boolean settingsFinals = settings.INTRODUCE_PARAMETER_CREATE_FINALS; myCbDeclareFinal.setSelected( settingsFinals == null ? CodeStyleSettingsManager.getSettings(myProject).GENERATE_FINAL_PARAMETERS : settingsFinals.booleanValue()); panel.add(myCbDeclareFinal, gbConstraints); if (myMustBeFinal) { myCbDeclareFinal.setSelected(true); myCbDeclareFinal.setEnabled(false); } else if (myHasWriteAccess && myPanel.isReplaceAllOccurences()) { myCbDeclareFinal.setSelected(false); myCbDeclareFinal.setEnabled(false); } gbConstraints.gridy++; myPanel.createDelegateCb(gbConstraints, panel); return panel; }