Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Conflicts: src/org/jetbrains/plugins/scala/lang/psi/impl/base/ScStableCodeReferenceElementImpl.scala
- Loading branch information
Showing
29 changed files
with
1,761 additions
and
115 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 7 additions & 17 deletions
24
src/org/jetbrains/plugins/scala/codeInsight/generation/ui/ScalaMemberSelectionPanel.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,20 @@ | ||
package org.jetbrains.plugins.scala | ||
package codeInsight.generation.ui | ||
|
||
import java.awt.BorderLayout | ||
import javax.swing.JScrollPane | ||
import com.intellij.ui.{SeparatorFactory, ScrollPaneFactory} | ||
import java.util | ||
import org.jetbrains.plugins.scala.lang.psi.api.toplevel.ScNamedElement | ||
import com.intellij.refactoring.ui.AbstractMemberSelectionPanel | ||
import org.jetbrains.plugins.scala.lang.refactoring.ui.ScalaMemberSelectionPanelBase | ||
|
||
/** | ||
* Nikolay.Tropin | ||
* 8/20/13 | ||
* 2014-05-28 | ||
*/ | ||
class ScalaMemberSelectionPanel(title: String, memberInfo: util.List[ScalaMemberInfo], abstractColumnHeader: String) | ||
extends AbstractMemberSelectionPanel[ScNamedElement, ScalaMemberInfo] { | ||
class ScalaMemberSelectionPanel(title: String, | ||
memberInfo: util.List[ScalaMemberInfo], | ||
abstractColumnHeader: String) | ||
extends ScalaMemberSelectionPanelBase[ScNamedElement, ScalaMemberInfo](title, memberInfo, abstractColumnHeader) { | ||
|
||
setLayout(new BorderLayout) | ||
private val myTable = createMemberSelectionTable(memberInfo, abstractColumnHeader) | ||
val scrollPane: JScrollPane = ScrollPaneFactory.createScrollPane(myTable) | ||
add(SeparatorFactory.createSeparator(title, myTable), BorderLayout.NORTH) | ||
add(scrollPane, BorderLayout.CENTER) | ||
|
||
protected def createMemberSelectionTable(memberInfos: util.List[ScalaMemberInfo], abstractColumnHeader: String): ScalaMemberSelectionTable = | ||
override def createMemberSelectionTable(memberInfos: util.List[ScalaMemberInfo], abstractColumnHeader: String) = | ||
new ScalaMemberSelectionTable(memberInfos, null, abstractColumnHeader) | ||
|
||
def getTable: ScalaMemberSelectionTable = myTable | ||
|
||
} | ||
|
57 changes: 3 additions & 54 deletions
57
src/org/jetbrains/plugins/scala/codeInsight/generation/ui/ScalaMemberSelectionTable.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,63 +1,12 @@ | ||
package org.jetbrains.plugins.scala | ||
package codeInsight.generation.ui | ||
|
||
import com.intellij.refactoring.ui.AbstractMemberSelectionTable | ||
import org.jetbrains.plugins.scala.lang.psi.api.toplevel.ScNamedElement | ||
import com.intellij.refactoring.classMembers.MemberInfoModel | ||
import javax.swing.Icon | ||
import com.intellij.ui.RowIcon | ||
import com.intellij.icons.AllIcons | ||
import org.jetbrains.plugins.scala.lang.psi.api.statements.ScFunction | ||
import com.intellij.psi._ | ||
import com.intellij.util.{IconUtil, VisibilityIcons} | ||
import org.jetbrains.plugins.scala.lang.psi.api.toplevel.typedef.{ScObject, ScMember} | ||
import org.jetbrains.plugins.scala.lang.refactoring.ui.ScalaMemberSelectionTableBase | ||
|
||
|
||
/** | ||
* Nikolay.Tropin | ||
* 8/20/13 | ||
*/ | ||
class ScalaMemberSelectionTable(memberInfos: java.util.Collection[ScalaMemberInfo], | ||
memberInfoModel: MemberInfoModel[ScNamedElement, ScalaMemberInfo], | ||
abstractColumnHeader: String) | ||
extends AbstractMemberSelectionTable[ScNamedElement, ScalaMemberInfo](memberInfos, memberInfoModel, abstractColumnHeader) { | ||
|
||
def getAbstractColumnValue(memberInfo: ScalaMemberInfo): AnyRef = { | ||
memberInfo.getMember match { | ||
case member: ScMember if member.containingClass.isInstanceOf[ScObject] => null | ||
case member: ScMember if member.hasAbstractModifier && myMemberInfoModel.isFixedAbstract(memberInfo) != null => | ||
myMemberInfoModel.isFixedAbstract(memberInfo) | ||
case _ if !myMemberInfoModel.isAbstractEnabled(memberInfo) => | ||
val res: java.lang.Boolean = myMemberInfoModel.isAbstractWhenDisabled(memberInfo) | ||
res | ||
case _ if memberInfo.isToAbstract => java.lang.Boolean.TRUE | ||
case _ => java.lang.Boolean.FALSE | ||
} | ||
} | ||
|
||
def isAbstractColumnEditable(rowIndex: Int): Boolean = { | ||
val info: ScalaMemberInfo = myMemberInfos.get(rowIndex) | ||
info.getMember match { | ||
case member: ScMember if member.hasAbstractModifier && myMemberInfoModel.isFixedAbstract(info) => false | ||
case _ => info.isChecked && myMemberInfoModel.isAbstractEnabled(info) | ||
} | ||
} | ||
|
||
def setVisibilityIcon(memberInfo: ScalaMemberInfo, icon: RowIcon) { | ||
memberInfo.getMember match { | ||
case owner: PsiModifierListOwner => | ||
owner.getModifierList match { | ||
case mods: PsiModifierList => VisibilityIcons.setVisibilityIcon(mods, icon) | ||
case _ => icon.setIcon(IconUtil.getEmptyIcon(true), AbstractMemberSelectionTable.VISIBILITY_ICON_POSITION) | ||
} | ||
case _ => | ||
} | ||
} | ||
|
||
def getOverrideIcon(memberInfo: ScalaMemberInfo): Icon = memberInfo.getMember match { | ||
case fun: ScFunction => | ||
if (java.lang.Boolean.TRUE == memberInfo.getOverrides) AllIcons.General.OverridingMethod | ||
else if (java.lang.Boolean.FALSE == memberInfo.getOverrides) AllIcons.General.ImplementingMethod | ||
else AbstractMemberSelectionTable.EMPTY_OVERRIDE_ICON | ||
case _ => AbstractMemberSelectionTable.EMPTY_OVERRIDE_ICON | ||
} | ||
} | ||
extends ScalaMemberSelectionTableBase[ScNamedElement, ScalaMemberInfo](memberInfos, memberInfoModel, abstractColumnHeader) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.