diff --git a/src/main/java/eu/omp/irap/vespa/epntapclient/gui/servicespanel/ServicesPanelCtrl.java b/src/main/java/eu/omp/irap/vespa/epntapclient/gui/servicespanel/ServicesPanelCtrl.java index daa2e28..d010b0e 100644 --- a/src/main/java/eu/omp/irap/vespa/epntapclient/gui/servicespanel/ServicesPanelCtrl.java +++ b/src/main/java/eu/omp/irap/vespa/epntapclient/gui/servicespanel/ServicesPanelCtrl.java @@ -35,12 +35,6 @@ public class ServicesPanelCtrl extends VOTableController implements ServicesPane /** The separator used between each services in the custom service text fields. */ private static final String CUSTOM_SERVICES_SEPARATOR = ";"; - /** The position of the column displaying the services target URLs in the service table. */ - private static final int SERVICE_URL_COLUMN_POSITION = 1; - - /** The position of the column displaying the table names in the service table. */ - private static final int TABLE_NAME_COLUMN_POSITION = 4; - /** The listener of the main panel. */ private MainPanelListener listener; @@ -84,9 +78,12 @@ public class ServicesPanelCtrl extends VOTableController implements ServicesPane List newTablesNames = new ArrayList<>(); List newServicesUrls = new ArrayList<>(); + int idxServiceUrl = view.getTable().getColumn("access_url").getModelIndex(); + int idxTableName = view.getTable().getColumn("table_name").getModelIndex(); + for (int row : view.getSelectedRows()) { - newTablesNames.add((String) view.getValueAt(TABLE_NAME_COLUMN_POSITION, row)); - newServicesUrls.add((String) view.getValueAt(SERVICE_URL_COLUMN_POSITION, row)); + newTablesNames.add((String) view.getValueAt(idxServiceUrl, row)); + newServicesUrls.add((String) view.getValueAt(idxTableName, row)); } services.updateSelectedServices(newTablesNames, newServicesUrls); listener.updateQuery(); diff --git a/src/main/java/eu/omp/irap/vespa/epntapclient/service/Queries.java b/src/main/java/eu/omp/irap/vespa/epntapclient/service/Queries.java index 3804aba..190bd3f 100644 --- a/src/main/java/eu/omp/irap/vespa/epntapclient/service/Queries.java +++ b/src/main/java/eu/omp/irap/vespa/epntapclient/service/Queries.java @@ -23,16 +23,6 @@ package eu.omp.irap.vespa.epntapclient.service; */ public final class Queries { - /** - * The default SELECT keyword content of the query, which select standard service column names. - */ - private static final String SELECT_SERVICE = "SELECT DISTINCT ivoid, access_url, res_title, " - + "short_name, table_name, content_type, res_description, creator_seq, content_level, " - + "reference_url, created, updated "; - - /** The default SELECT keyword */ - private static final String SELECT = "SELECT DISTINCT "; - /** The default FROM keyword content of the query, which links all required tables. */ private static final String FROM = "FROM rr.resource " + "NATURAL JOIN rr.res_schema " @@ -44,47 +34,59 @@ public final class Queries { /** The default ORDER BY keyword content of the query. */ private static final String ORDER_BY = "ORDER BY short_name, table_name"; + /** The default SELECT keyword */ + private static final String SELECT = "SELECT DISTINCT "; + + /** + * The default SELECT keyword content of the query, which select standard service column names. + */ + private static final String SELECT_SERVICE = "SELECT DISTINCT res_title, ivoid, access_url, " + + " short_name, table_name, content_type, res_description, creator_seq, content_level, " + + "reference_url, created, updated "; + /** The default WHERE keyword content of the query, in order to get only TAP services. */ private static final String WHERE_TAP = "WHERE " + "standard_id='ivo://ivoa.net/std/tap' AND " + "intf_type='vs:paramhttp' AND " + "detail_xpath='/capability/dataModel/@ivo-id' "; - - //@noformat + + /** Query to select all columns of any table. */ + public static final String SELECT_ALL = "SELECT DISTINCT * FROM %s"; /** Query to get all TAP services. */ - public static final String SELECT_ALL_TAP_SERVICES = - SELECT_SERVICE + FROM + WHERE_TAP + ORDER_BY; - - /** Query to get the specified columns (%s #1) of all TAP services. */ - public static final String SELECT_TAP_SERVICES = - SELECT + "%s " + FROM + WHERE_TAP; + public static final String SELECT_ALL_TAP_SERVICES = SELECT_SERVICE + FROM + WHERE_TAP + + ORDER_BY; /** Query to get TAP services which implement the specified core (%s #1). */ - public static final String SELECT_ALL_TAP_SERVICES_WHERE_CORE = - SELECT_SERVICE + FROM + WHERE_TAP + public static final String SELECT_ALL_TAP_SERVICES_WHERE_CORE = SELECT_SERVICE + FROM + + WHERE_TAP + "AND 1=ivo_nocasematch(detail_value, 'ivo://vopdc.obspm/std/%s%%') " + ORDER_BY; /** Query to get the TAP service with the specified ivoid (%s #1). */ - public static final String SELECT_ALL_TAP_SERVICES_WHERE_IVOID = - SELECT_SERVICE + FROM + WHERE_TAP + "AND ivoid = '%s'"; + public static final String SELECT_ALL_TAP_SERVICES_WHERE_IVOID = SELECT_SERVICE + FROM + + WHERE_TAP + "AND ivoid = '%s'"; - /** Query to get the specified column names (%s #1) of TAP service with the specified ivoid (%s #2). */ - public static final String SELECT_TAP_SERVICES_WHERE_IVOID = - SELECT + "%s " + FROM + WHERE_TAP + "AND ivoid = '%s'"; + /** Query to get the specified column names (%s #1) of any table. */ + public static final String SELECT_FROM = SELECT + "%s FROM %s"; - /** Query to get the specified column names (%s #1) of TAP service with the specified subject (%s #2). */ - public static final String SELECT_TAP_SERVICES_WHERE_SUBJECT = - SELECT + "%s " + FROM + "NATURAL JOIN rr.res_subject " + WHERE_TAP + "AND (%s)"; + /** Query to get the specified columns (%s #1) of all TAP services. */ + public static final String SELECT_TAP_SERVICES = SELECT + "%s " + FROM + WHERE_TAP; + + /** + * Query to get the specified column names (%s #1) of TAP service with the specified ivoid (%s + * #2). + */ + public static final String SELECT_TAP_SERVICES_WHERE_IVOID = SELECT + "%s " + FROM + WHERE_TAP + + "AND ivoid = '%s'"; + + /** + * Query to get the specified column names (%s #1) of TAP service with the specified subject (%s + * #2). + */ + public static final String SELECT_TAP_SERVICES_WHERE_SUBJECT = SELECT + "%s " + FROM + + "NATURAL JOIN rr.res_subject " + WHERE_TAP + "AND (%s)"; - /** Query to get the specified column names (%s #1) of any table. */ - public static final String SELECT_FROM = - SELECT + "%s FROM %s"; - /** Query to select all columns of any table. */ - public static final String SELECT_ALL = - "SELECT DISTINCT * FROM %s"; - //@format /** Constructor to hide the implicit public one. */ -- libgit2 0.21.2