/* * Copyright 2003-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package jetbrains.mps.idea.core.ui; import jetbrains.mps.fileTypes.FileIcons; import jetbrains.mps.idea.core.MPSBundle; import jetbrains.mps.project.AbstractModule; import jetbrains.mps.util.annotation.ToRemove; import org.jetbrains.mps.openapi.model.EditableSModel; import org.jetbrains.mps.openapi.model.SModel; import org.jetbrains.mps.openapi.model.SModelReference; import org.jetbrains.mps.openapi.module.SModule; import javax.swing.Icon; import java.util.ArrayList; import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Unused class * */ @Deprecated @ToRemove(version = 3.4) public class ImportedModelsTable extends MpsElementsTable<SModelReference> { public static Comparator<SModelReference> MODEL_REFERENCE_COMPARATOR = new ModelReferenceComparator(); private EditableSModel myModelDescriptor; public ImportedModelsTable() { super(true); } public void setDescriptor(EditableSModel descriptor) { myModelDescriptor = descriptor; } @Override protected String getText(SModelReference modelReference) { return modelReference.getModelName(); } @Override protected Icon getIcon(SModelReference modelReference) { return FileIcons.MODEL_ICON; } @Override protected List<SModelReference> getAllVisibleElements() { Set<SModelReference> modelsToHide = new HashSet<SModelReference>(); modelsToHide.add(myModelDescriptor.getReference()); for (SModelReference importedModelRef : getElements()) { modelsToHide.add(importedModelRef); } List<SModelReference> result = new ArrayList<SModelReference>(); SModule module = myModelDescriptor.getModule(); for (SModel modelDescriptor : ((AbstractModule) module).getScope().getModels()) { if (modelsToHide.contains(modelDescriptor.getReference())) { continue; } result.add(modelDescriptor.getReference()); } return result; } @Override protected Comparator<SModelReference> getComparator() { return MODEL_REFERENCE_COMPARATOR; } @Override protected Class<SModelReference> getRendererClass() { return SModelReference.class; } @Override protected String getChooserMessage() { return MPSBundle.message("imported.models.chooser.title"); } private static final class ModelReferenceComparator implements Comparator<SModelReference> { @Override public int compare(SModelReference o1, SModelReference o2) { return o1.getModelName().compareTo(o2.getModelName()); } @Override public boolean equals(Object obj) { return obj instanceof ModelReferenceComparator; } @Override public int hashCode() { return this.getClass().hashCode(); } } }