package com.intellij.lang.javascript.flex.projectStructure.ui;
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.PlaceInProjectStructure;
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
import com.intellij.openapi.util.ActionCallback;
import com.intellij.ui.navigation.Place;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class PlaceInBuildConfiguration extends PlaceInProjectStructure {
private final BuildConfigurationProjectStructureElement myStructureElement;
private final String myTabName;
@Nullable private final Object myLocationOnTab;
public PlaceInBuildConfiguration(BuildConfigurationProjectStructureElement structureElement,
@NotNull String tabName,
@Nullable Object locationOnTab) {
myStructureElement = structureElement;
myTabName = tabName;
myLocationOnTab = locationOnTab;
}
@NotNull
@Override
public ProjectStructureElement getContainingElement() {
return myStructureElement;
}
@Override
public String getPlacePath() {
return myTabName;
}
@NotNull
@Override
public ActionCallback navigate() {
if (myStructureElement.getModule().isDisposed()) {
return ActionCallback.DONE;
}
Place place = FlexProjectStructureUtil.createPlace(myStructureElement.getModule(), myStructureElement.getBC(), myTabName);
if (myLocationOnTab != null) {
place.putPath(FlexBCConfigurable.LOCATION_ON_TAB, myLocationOnTab);
}
return ProjectStructureConfigurable.getInstance(myStructureElement.getModule().getProject()).navigateTo(place, true);
}
}