Skip to content

Commit

Permalink
rdf.dt: use the setErrorMessage for reporting invalid tags
Browse files Browse the repository at this point in the history
  • Loading branch information
agarciadom committed Dec 18, 2024
1 parent 635a73f commit 1d512dd
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.StringJoiner;
import java.util.Set;
import java.util.stream.Collectors;

import org.eclipse.core.resources.IFile;
Expand All @@ -35,10 +35,10 @@
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
Expand Down Expand Up @@ -80,7 +80,7 @@ protected Object getValue(Object element) {
protected void setValue(Object element, Object value) {
((NamespaceMappingTableEntry)element).prefix = String.valueOf(value);
viewer.update(element, null);
validateURLs();
validateForm();
}
}

Expand Down Expand Up @@ -113,7 +113,7 @@ protected Object getValue(Object element) {
protected void setValue(Object element, Object value) {
((NamespaceMappingTableEntry)element).url = String.valueOf(value);
viewer.update(element, null);
validateURLs();
validateForm();
}
}

Expand Down Expand Up @@ -146,12 +146,12 @@ protected Object getValue(Object element) {
protected void setValue(Object element, Object value) {
((URLTableEntry)element).url = String.valueOf(value);
viewer.update(element, null);
validateURLs();
validateForm();
}
}

protected class NamespaceMappingTableEntry {
public String prefix, url, languagePreference;
public String prefix, url;
}

protected class URLTableEntry {
Expand Down Expand Up @@ -353,6 +353,7 @@ public void widgetSelected(SelectionEvent e) {
urls.remove(it.next());
}
urlList.refresh();
validateForm();
}
}
});
Expand All @@ -364,6 +365,7 @@ public void widgetSelected(SelectionEvent e) {
public void widgetSelected(SelectionEvent e) {
urls.clear();
urlList.refresh();
validateForm();
}
});

Expand All @@ -375,38 +377,22 @@ public void widgetSelected(SelectionEvent e) {

protected Label languagePreferenceLabel;
protected Text languagePreferenceText;
protected Label languagePreferenceErrorLabel;

private Composite createLanguagePreferenceGroup(Composite parent) {
final Composite groupContent = DialogUtil.createGroupContainer(parent, "Language tag preference", 1);

languagePreferenceLabel = new Label(groupContent, SWT.NONE);
languagePreferenceLabel.setText("Language tag preference in order: ");
languagePreferenceLabel.setText("Comma-separated preferred language tags, in descending priority:");

languagePreferenceText = new Text(groupContent, SWT.BORDER);
languagePreferenceText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
languagePreferenceText.addVerifyListener(new VerifyListener() {
languagePreferenceText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
languagePreferenceText.addModifyListener(new ModifyListener() {
@Override
public void verifyText(VerifyEvent event) {
String text = languagePreferenceText.getText() + event.text;
text = text.replaceAll("\\s", "");

if (text.length() > 0) {
StringJoiner invalidTags = new StringJoiner(" ");
invalidTags.add("\nInvalid tags: ");
for (String tag : text.split(",")) {
if (!RDFModel.isValidLanguageTag(tag)) {
invalidTags.add(tag);
}
}
languagePreferenceErrorLabel.setText(invalidTags.toString());
}
}
public void modifyText(ModifyEvent event) {
validateForm();
}
});

languagePreferenceErrorLabel = new Label(groupContent,SWT.NONE);
languagePreferenceErrorLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

groupContent.layout();
groupContent.pack();
return groupContent;
Expand Down Expand Up @@ -437,11 +423,11 @@ protected void loadProperties(){
}
}

languagePreferenceText.setText(properties.getProperty(RDFModel.PROPERTY_LANGUAGEPREFERENCE));
languagePreferenceText.setText(properties.getProperty(RDFModel.PROPERTY_LANGUAGE_PREFERENCE));

this.urlList.refresh();
this.nsMappingTable.refresh();
validateURLs();
validateForm();
}

@Override
Expand All @@ -458,12 +444,26 @@ protected void storeProperties(){
.map(e -> e.prefix + "=" + e.url)
.collect(Collectors.toList())));


properties.put(RDFModel.PROPERTY_LANGUAGEPREFERENCE,
properties.put(RDFModel.PROPERTY_LANGUAGE_PREFERENCE,
languagePreferenceText.getText().replaceAll("\\s", ""));
}

protected void validateURLs() {
protected void validateForm() {
String text = languagePreferenceText.getText().strip();
if (text.length() > 0) {
Set<String> invalidTags = new HashSet<>();
for (String tag : text.split(",")) {
if (!RDFModel.isValidLanguageTag(tag)) {
invalidTags.add(tag);
}
}
if (!invalidTags.isEmpty()) {
setErrorMessage(String.format(
"Invalid tags: %s", String.join(" ", invalidTags)));
return;
}
}

for (URLTableEntry entry : this.urls) {
String errorMessage = validateURL(entry.url);
if (errorMessage != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

public class RDFModel extends CachedModel<RDFModelElement> {

public static final String PROPERTY_LANGUAGEPREFERENCE = "lanuguagePreference";
public static final String PROPERTY_LANGUAGE_PREFERENCE = "lanuguagePreference";

public static final String PROPERTY_URIS = "uris";

Expand Down Expand Up @@ -160,7 +160,7 @@ public void load(StringProperties properties, IRelativePathResolver resolver) th
}

this.languagePreference.clear();
for (String tag : properties.getProperty(PROPERTY_LANGUAGEPREFERENCE).split(",")) {
for (String tag : properties.getProperty(PROPERTY_LANGUAGE_PREFERENCE).split(",")) {
this.languagePreference.add(tag.strip());
}

Expand Down

0 comments on commit 1d512dd

Please sign in to comment.