package com.intellij.lang.javascript.uml.actions;
import com.intellij.lang.javascript.JSBundle;
import com.intellij.lang.javascript.flex.XmlBackedJSClassImpl;
import com.intellij.lang.javascript.psi.ecmal4.JSClass;
import com.intellij.lang.javascript.psi.impl.JSFunctionImpl;
import com.intellij.lang.javascript.refactoring.JSVisibilityUtil;
/**
* @author Konstantin Bulenkov
* @author Kirill Safonov
*/
public class FlexCreateConstructorFromDiagramAction extends JSCreateMethodActionBase {
public FlexCreateConstructorFromDiagramAction() {
super(JSBundle.message("new.constructor.action.text"), JSBundle.message("new.constructor.action.description"),
JSFunctionImpl.CONSTRUCTOR_ICON);
}
@Override
protected boolean isForceConstructor() {
return true;
}
@Override
protected String createFakeMethodText(JSClass clazz) {
final String visibility = JSVisibilityUtil.getVisibilityKeyword(PUBLIC);
return visibility + " function " + clazz.getName() + "()";
}
@Override
public boolean isEnabledOn(Object o) {
if (!super.isEnabledOn(o)) return false;
JSClass clazz = (JSClass)o;
return !(clazz instanceof XmlBackedJSClassImpl) && !clazz.isInterface() && clazz.getConstructor() == null;
}
@Override
public String getActionName() {
return JSBundle.message("new.constructor.action.description");
}
}