use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData in project intellij-tekton by redhat-developer.
the class HubDetailsPageComponent method createMetricsPanel.
private void createMetricsPanel(@NotNull JPanel centerPanel) {
versionsCmb = new ComboBox();
BasicComboBoxRenderer versionCmbRenderer = new BasicComboBoxRenderer() {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof ResourceVersionData) {
ResourceVersionData version = (ResourceVersionData) value;
setText(version.getVersion());
}
return this;
}
};
versionsCmb.setRenderer(versionCmbRenderer);
versionsCmb.addItemListener(e -> {
if (e.getStateChange() == ItemEvent.SELECTED) {
ResourceVersionData versionSelected = (ResourceVersionData) e.getItem();
loadBottomTabs(versionSelected.getDisplayName(), versionSelected.getRawURL());
}
});
myRating = new JLabel("", AllIcons.Plugins.Rating, SwingConstants.CENTER);
myRating.setOpaque(false);
myRating.setIconTextGap(2);
myRating.setForeground(GRAY_COLOR);
JPanel metricsPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
metricsPanel.setBackground(MAIN_BG_COLOR);
metricsPanel.add(myRating);
metricsPanel.add(versionsCmb);
centerPanel.add(metricsPanel);
}
use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData in project intellij-tekton by redhat-developer.
the class HubDetailsPageComponent method show.
public void show(HubItem item, TriConsumer<HubItem, String, String> doInstallAction) {
if (item == null) {
select(1, true);
} else {
ResourceData resource = item.getResource();
ResourceVersionData resourceVersionData = getHubItemResourceVersionData(item);
if (resourceVersionData == null) {
return;
}
setInstallButtons(item, doInstallAction);
setNameLabel(resourceVersionData, resource.getName());
fillVersionsCombo(resource, resourceVersionData);
myRating.setText(resource.getRating().toString());
myHomePage.show(resource.getKind() + " Homepage", () -> {
try {
Desktop.getDesktop().browse(resourceVersionData.getWebURL());
} catch (IOException e) {
logger.warn(e.getLocalizedMessage(), e);
}
});
setDetailsPanel(resource, resourceVersionData);
loadBottomTabs(resource.getName(), resourceVersionData.getRawURL());
select(0, true);
}
}
use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData in project intellij-tekton by redhat-developer.
the class HubItemScoreTest method buildHubItem.
private HubItem buildHubItem(String name, String description, List<Tag> tags) {
ResourceData resourceData = mock(ResourceData.class);
ResourceVersionData resourceVersionData = mock(ResourceVersionData.class);
when(resourceData.getLatestVersion()).thenReturn(resourceVersionData);
when(resourceVersionData.getVersion()).thenReturn("v1");
when(resourceVersionData.getDescription()).thenReturn(description);
when(resourceData.getName()).thenReturn(name);
when(resourceData.getKind()).thenReturn("kind");
when(resourceData.getTags()).thenReturn(tags);
HubItem hubItem = new HubItem(resourceData);
return hubItem;
}
use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData in project intellij-tekton by redhat-developer.
the class HubModel method getVersionsById.
public List<ResourceVersionData> getVersionsById(int id) {
List<ResourceVersionData> versions = new ArrayList<>();
Optional<HubItem> itemSelected = getAllHubItems().stream().filter(item -> item.getResource().getId() == id).findFirst();
if (itemSelected.isPresent()) {
versions = itemSelected.get().getResource().getVersions();
}
if (versions.isEmpty()) {
ResourceApi res = new ResourceApi();
try {
versions = res.resourceVersionsByID(id).getData().getVersions();
if (itemSelected.isPresent()) {
itemSelected.get().getResource().setVersions(versions);
}
} catch (ApiException e) {
logger.warn(e.getLocalizedMessage());
}
}
return versions;
}
use of com.redhat.devtools.intellij.tektoncd.hub.model.ResourceVersionData in project intellij-tekton by redhat-developer.
the class HubItemScore method computeScore.
private int computeScore(HubItem hubItem) {
int score = 0;
ResourceData resourceData = hubItem.getResource();
ResourceVersionData resourceVersionData = resourceData.getLatestVersion();
for (int i = 0; i < languages.size(); i++) {
Language language = languages.get(i);
int multiplier = i >= LANGUAGES_MULTIPLIER.length ? LANGUAGES_MULTIPLIER[LANGUAGES_MULTIPLIER.length - 1] : LANGUAGES_MULTIPLIER[i];
if (matches(resourceData.getName(), language)) {
score += NAME_WEIGHT * multiplier;
}
if (resourceVersionData != null && matches(resourceVersionData.getDescription(), language)) {
score += DESCRIPTION_WEIGHT * multiplier;
}
List<String> tags = resourceData.getTags().stream().map(c -> c.getName()).collect(Collectors.toList());
if (resourceData.getTags().contains(language.getName()) || matches(tags, language)) {
score += TAG_WEIGHT * multiplier;
}
}
return score;
}
Aggregations