Java tutorial
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" // which accompanies this distribution, and is available // at the URL "http://www.eclipse.org/legal/epl-v10.html". // // Initial Contributors: // Nokia Corporation - initial contribution. // // Contributors: // // Description: // package com.symbian.smt.gui.smtwidgets.resources; import java.util.ArrayList; import java.util.HashMap; import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.ICheckStateListener; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ListViewer; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowData; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Table; import com.symbian.smt.gui.Helper; import com.symbian.smt.gui.ResourcesEnums; public class ResourcesWidget extends Composite { /** * This is the content provider for the list of resource types. * * @author barbararosi-schwartz */ private class ResourceFilesContentProvider implements IStructuredContentProvider { public void dispose() { } @SuppressWarnings("unchecked") public Object[] getElements(Object inputElement) { return ResourcesWidgetHelper .toArrayOfCheckableResourceFilenames((java.util.List<CheckableResourceFilename>) inputElement); } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } } /** * This is the label provider for the list of of resource types. * * @author barbararosi-schwartz */ private class ResourceFilesLabelProvider implements ITableLabelProvider { public void addListener(ILabelProviderListener listener) { } public void dispose() { } public Image getColumnImage(Object element, int columnIndex) { return null; } public String getColumnText(Object element, int columnIndex) { CheckableResourceFilename crf = (CheckableResourceFilename) element; return (columnIndex == 0) ? crf.getFilename() : null; } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } } /** * This is the content provider for the list of resource types. * * @author barbararosi-schwartz */ private class ResourceTypesContentProvider implements IStructuredContentProvider { public void dispose() { } public Object[] getElements(Object inputElement) { return (ResourcesEnums[]) inputElement; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } } /** * This is the label provider for the list of of resource types. * * @author barbararosi-schwartz */ private class ResourceTypesLabelProvider implements ILabelProvider { public void addListener(ILabelProviderListener listener) { } public void dispose() { } public Image getImage(Object element) { return null; } public String getText(Object element) { return ((ResourcesEnums) element).arg(); } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } } /** * The Map that caches all defined resource files, keyed by the * ResourcesEnums enums. */ private final HashMap<ResourcesEnums, java.util.List<CheckableResourceFilename>> resourceFilesMap = new HashMap<ResourcesEnums, java.util.List<CheckableResourceFilename>>(); /** * The viewer associated with the Resource Files List widget. */ private CheckboxTableViewer resourceFilesViewer; /** * The viewer associated with the Resource Types List widget. */ private ListViewer resourceTypesViewer; /** * Creates a ResourcesWidget composite object * * @return void */ public ResourcesWidget(final Composite parent, int style) { super(parent, style); initialiseMaps(); this.setLayout(new FillLayout()); // The Composite that contains all widgets final Composite gridLayoutComposite = new Composite(this, SWT.NONE); final GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; gridLayoutComposite.setLayout(gridLayout); // The SashForm that contains the resource types and resource files // widgets // side by side SashForm sash = new SashForm(gridLayoutComposite, SWT.HORIZONTAL); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); sash.setLayoutData(gd); createResourceTypesComposite(sash); createResourceFilesComposite(sash); sash.setWeights(new int[] { 30, 70 }); createButtonsComposite(gridLayoutComposite); } private void addAddResourceButton(Composite parent) { // The "Add" button final Button addResourceFileButton = new Button(parent, SWT.NONE); RowData rd = new RowData(); rd.width = 75; addResourceFileButton.setLayoutData(rd); // The action that backs the "Add" button final AddResourceFileAction addResourceFileAction = new AddResourceFileAction(addResourceFileButton, resourceFilesViewer, resourceFilesMap, resourceTypesViewer); // When button is pressed, listener invokes the action's run() method, // then ensures that the newly added file is checked, guaranteeing that // all rules around multiple checked files are respected. // Finally refreshes the List of assigned options and set the selection // appropriately. // If the newly added file failed validation during the action's run() // method, // none of the operations above is taken and all is left as it was prior // to // the request to add a new file. addResourceFileButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { addResourceFileAction.run(); resourceFilesViewer.refresh(); String newFileLocation = addResourceFileAction.getNewFileLocation(); // newFile could be null if an error was detected in the // validations // performed in the action's run() method. if (newFileLocation != null) { ResourcesEnums type = ResourcesWidgetHelper.getSelectedResourceType(resourceTypesViewer); CheckableResourceFilename crf = ResourcesWidgetHelper .filename2checkableFilename(newFileLocation, type, resourceFilesMap); handleMultipleCheckRules(crf); StructuredSelection oldSel = (StructuredSelection) resourceFilesViewer.getSelection(); StructuredSelection newSel = (newFileLocation == null) ? oldSel : new StructuredSelection(newFileLocation); resourceFilesViewer.setSelection(newSel); } } }); } private void addMoveDownResourceButton(Composite parent) { // The "Move Down" button final Button moveResourceFileDownButton = new Button(parent, SWT.NONE); RowData rd = new RowData(); rd.width = 75; moveResourceFileDownButton.setLayoutData(rd); // The action that backs the "Move Down" button final MoveResourceFileDownAction moveResourceFileDownAction = new MoveResourceFileDownAction( moveResourceFileDownButton, resourceFilesViewer, resourceFilesMap, resourceTypesViewer); // When button is pressed, listener invokes the action's run() method, // then refreshes the List of assigned options and set the selection // appropriately moveResourceFileDownButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { moveResourceFileDownAction.run(); resourceFilesViewer.refresh(); StructuredSelection newSel = new StructuredSelection( moveResourceFileDownAction.getMovedCheckableFilename()); resourceFilesViewer.setSelection(newSel); } }); } private void addMoveUpResourceButton(Composite parent) { // The "Move Up" button final Button moveResourceFileUpButton = new Button(parent, SWT.NONE); RowData rd = new RowData(); rd.width = 75; moveResourceFileUpButton.setLayoutData(rd); // The action that backs the "Move Up" button final MoveResourceFileUpAction moveResourceFileUpAction = new MoveResourceFileUpAction( moveResourceFileUpButton, resourceFilesViewer, resourceFilesMap, resourceTypesViewer); // When button is pressed, listener invokes the action's run() method, // then refreshes the List of assigned options and set the selection // appropriately moveResourceFileUpButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { moveResourceFileUpAction.run(); resourceFilesViewer.refresh(); StructuredSelection newSel = new StructuredSelection( moveResourceFileUpAction.getMovedCheckableFilename()); resourceFilesViewer.setSelection(newSel); } }); } private void addRemoveResourceButton(Composite parent) { // The "Remove" button final Button removeResourceFileButton = new Button(parent, SWT.NONE); RowData rd = new RowData(); rd.width = 75; removeResourceFileButton.setLayoutData(rd); // The action that backs the "Remove" button final RemoveResourceFileAction removeResourceFileAction = new RemoveResourceFileAction( removeResourceFileButton, resourceFilesViewer, resourceFilesMap, resourceTypesViewer); // When button is pressed, listener invokes the action's run() method, // then refreshes the List of assigned options and set the selection // appropriately removeResourceFileButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { removeResourceFileAction.run(); resourceFilesViewer.refresh(); Object firstElement = resourceFilesViewer.getElementAt(0); StructuredSelection ssel = (firstElement == null) ? new StructuredSelection(StructuredSelection.EMPTY) : new StructuredSelection(firstElement); resourceFilesViewer.setSelection(ssel); } }); } private void checkFilesInResourceFilesTable(String[] filenames, ResourcesEnums resourceType) { if (filenames == null) { throw new IllegalArgumentException("Argument filenames cannot be null."); } java.util.List<String> listOfFilenames = Helper.toListOfStrings(filenames); java.util.List<CheckableResourceFilename> checkableFilenames = resourceFilesMap.get(resourceType); if (checkableFilenames == null) { throw new IllegalArgumentException( "Could not find any elements of type [" + resourceType + "] in resourceFilesMap."); } CheckableResourceFilename[] viewerElementsToBeChecked = new CheckableResourceFilename[filenames.length]; int i = 0; for (String filename : listOfFilenames) { CheckableResourceFilename checkableFilename = ResourcesWidgetHelper.filename2checkableFilename(filename, resourceType, resourceFilesMap); checkableFilename.setChecked(true); viewerElementsToBeChecked[i] = checkableFilename; i++; } IStructuredSelection ssel = (IStructuredSelection) resourceTypesViewer.getSelection(); if (!ssel.isEmpty()) { ResourcesEnums selectedType = (ResourcesEnums) ssel.getFirstElement(); if (selectedType.equals(resourceType)) { resourceFilesViewer.setCheckedElements(viewerElementsToBeChecked); } } } private void createButtonsComposite(Composite parent) { // The Composite that contains all buttons in a horizontal stack final Composite buttonsComposite = new Composite(parent, SWT.NONE); final RowLayout rowLayout = new RowLayout(SWT.HORIZONTAL); rowLayout.spacing = 5; rowLayout.wrap = false; rowLayout.fill = true; buttonsComposite.setLayout(rowLayout); GridData gd = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 1, 1); buttonsComposite.setLayoutData(gd); addAddResourceButton(buttonsComposite); addRemoveResourceButton(buttonsComposite); addMoveUpResourceButton(buttonsComposite); addMoveDownResourceButton(buttonsComposite); } private void createResourceFilesComposite(SashForm sash) { // The Composite that contains the resource files table, along with a // label Composite resourceFilesComposite = new Composite(sash, SWT.NONE); GridData gd = new GridData(SWT.BEGINNING, SWT.FILL, false, true, 1, 1); resourceFilesComposite.setLayoutData(gd); resourceFilesComposite.setLayout(new GridLayout()); Label label = new Label(resourceFilesComposite, SWT.NONE); gd = new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false, 1, 1); label.setLayoutData(gd); label.setText("Resource Files"); // The Table that contains all assigned resource files for the selected // resource type final Table table = new Table(resourceFilesComposite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.CHECK | SWT.FULL_SELECTION); gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); table.setLayoutData(gd); // The resource type viewer associated with the list resourceFilesViewer = new CheckboxTableViewer(table); resourceFilesViewer.setContentProvider(new ResourceFilesContentProvider()); resourceFilesViewer.setLabelProvider(new ResourceFilesLabelProvider()); resourceFilesViewer.addCheckStateListener(new ICheckStateListener() { // When the user changed the checked state of the checkbox in the // table, set // or unset the isChecked attribute in the corresponding // CheckableResourceFilename object public void checkStateChanged(CheckStateChangedEvent event) { CheckableResourceFilename checkableFilename = (CheckableResourceFilename) event.getElement(); boolean isSelected = event.getChecked(); if (isSelected) { handleMultipleCheckRules(checkableFilename); } else { handleNoCheckRules(checkableFilename); } } }); } private void createResourceTypesComposite(SashForm sash) { // The Composite that contains the resource types list, along with a // label Composite resourceTypesComposite = new Composite(sash, SWT.NONE); GridData gd = new GridData(SWT.BEGINNING, SWT.FILL, false, true, 1, 1); resourceTypesComposite.setLayoutData(gd); resourceTypesComposite.setLayout(new GridLayout()); Label l = new Label(resourceTypesComposite, SWT.NONE); gd = new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false, 1, 1); l.setLayoutData(gd); l.setText("Resource Types"); // The List that contains all possible resource types final List list = new List(resourceTypesComposite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE); gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); list.setLayoutData(gd); // The resource type viewer associated with the list resourceTypesViewer = new ListViewer(list); resourceTypesViewer.setContentProvider(new ResourceTypesContentProvider()); resourceTypesViewer.setLabelProvider(new ResourceTypesLabelProvider()); resourceTypesViewer.setInput(ResourcesEnums.values()); resourceTypesViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection ssel = (IStructuredSelection) event.getSelection(); if (ssel.isEmpty()) { return; } ResourcesEnums selectedType = (ResourcesEnums) ssel.getFirstElement(); resourceFilesViewer.setInput( ResourcesWidgetHelper.getCheckableResourceFilenames(selectedType, resourceFilesMap)); resourceFilesViewer.setCheckedElements( ResourcesWidgetHelper.getCheckedResourceFilenames(selectedType, resourceFilesMap)); } }); } @Override public void dispose() { resourceFilesMap.clear(); super.dispose(); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getBorderShapesFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.BORDER_SHAPES, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getBorderStylesFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.BORDER_STYLES, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getColoursFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.COLOURS, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getDependenciesFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.DEPENDENCIES, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getLevelsFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.LEVELS, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getLocalisationFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.LOCALISATION, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getPatternsFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.PATTERNS, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getS12XmlFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.S12_XML, resourceFilesMap); } /** * Returns the border shapes file or an empty string if no border shapes * file has been specified * * @return String */ public String[] getSelectedBorderShapesFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.BORDER_SHAPES, resourceFilesMap); } /** * Returns the border styles file or an empty string if no border styles * file has been specified * * @return String */ public String[] getSelectedBorderStylesFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.BORDER_STYLES, resourceFilesMap); } /** * Returns the colours file or an empty string if no colours file has been * specified * * @return String */ public String[] getSelectedColoursFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.COLOURS, resourceFilesMap); } /** * Returns the dependencies file or an empty string if no dependencies file * has been specified * * @return String */ public String[] getSelectedDependenciesFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.DEPENDENCIES, resourceFilesMap); } /** * Returns the levels file or an empty string if no levels file has been * specified * * @return String */ public String[] getSelectedLevelsFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.LEVELS, resourceFilesMap); } /** * Returns the localisation file or an empty string if no localisation file * has been specified * * @return String */ public String[] getSelectedLocalisationFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.LOCALISATION, resourceFilesMap); } /** * Returns the patterns file or an empty string if no patterns file has been * specified * * @return String */ public String[] getSelectedPatternsFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.PATTERNS, resourceFilesMap); } /** * Returns the patterns file or an empty string if no patterns file has been * specified * * @return String */ public String[] getSelectedS12XmlFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.S12_XML, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getSelectedShapesFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.SHAPES, resourceFilesMap); } /** * Returns the system info file or an empty string if no system info file * has been specified * * @return String */ public String[] getSelectedSystemInfoFiles() { return ResourcesWidgetHelper.getCheckedFilenames(ResourcesEnums.SYSTEM_INFO, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getShapesFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.SHAPES, resourceFilesMap); } /** * Returns the shapes file or an empty string if no shapes file has been * specified * * @return String */ public String[] getSystemInfoFiles() { return ResourcesWidgetHelper.getFilenames(ResourcesEnums.SYSTEM_INFO, resourceFilesMap); } /** * Checks the designated resource file and sets its <code>isChecked</code> * attribute to true. Handles business rules around the acceptability of * having multiple checked files. * <p> * The rules are as follows: * <ul> * <li>If resource type is DEPENDENCIES or SHAPES, only allow one check at a * time: uncheck all other files and remove them from * <code>selectedResourceFilesMap</code></li> * <li>In all other cases, allow multiple checks</li> * </ul> * </p> * * @param resourceFile * the CheckableResourceFilename object that has been checked by * the user */ private void handleMultipleCheckRules(CheckableResourceFilename checkedCheckableFilename) { ResourcesEnums selectedResourceType = ResourcesWidgetHelper.getSelectedResourceType(resourceTypesViewer); java.util.List<CheckableResourceFilename> checkableFilenames = ResourcesWidgetHelper .getCheckableResourceFilenames(selectedResourceType, resourceFilesMap); checkedCheckableFilename.setChecked(true); switch (selectedResourceType) { // Only one file can be checked at a time, therefore uncheck all others case DEPENDENCIES: case SHAPES: for (CheckableResourceFilename checkableFilename : checkableFilenames) { if (!checkableFilename.equals(checkedCheckableFilename)) { checkableFilename.setChecked(false); } } resourceFilesViewer.setCheckedElements(new CheckableResourceFilename[] { checkedCheckableFilename }); break; // If multiple files are checked and they contain the same elements, // prevent checking from happening as it will generate an error in // the build. Produce an explanatory error dialog. case BORDER_SHAPES: case PATTERNS: // TODO:BRS:This piece of code is unfinished. If it is required to check // that there are no duplicate items across // the defined XML files, check similar behaviour in ResourceFileValidator. // If ok // resourceFilesViewer.setChecked(resourceFile, true); // selectedResourceFiles.add(resourceFile); // else // MessageDialog.openError("Checked files contain the same element and the process will fail.\n" // + // "Please remove duplicate elements or uncheck one or more of the other files."); // resourceFilesViewer.setChecked(resourceFile, false); resourceFilesViewer.setChecked(checkedCheckableFilename, true); break; // If "Auto" is checked, uncheck everything else. If another option is // checked, uncheck "Auto". case LEVELS: if (checkedCheckableFilename.getFilename().equals("Auto")) { for (CheckableResourceFilename checkableFilename : checkableFilenames) { if (!checkableFilename.equals(checkedCheckableFilename)) { checkableFilename.setChecked(false); } } resourceFilesViewer .setCheckedElements(new CheckableResourceFilename[] { checkedCheckableFilename }); } else { resourceFilesViewer.setChecked(checkedCheckableFilename, true); CheckableResourceFilename autocfn = ResourcesWidgetHelper.filename2checkableFilename("Auto", ResourcesEnums.LEVELS, resourceFilesMap); if (autocfn.isChecked()) { autocfn.setChecked(false); resourceFilesViewer.setChecked(autocfn, false); } } break; // No special rules, proceed with the operation. case BORDER_STYLES: case COLOURS: case LOCALISATION: case S12_XML: case SYSTEM_INFO: resourceFilesViewer.setChecked(checkedCheckableFilename, true); break; default: throw new IllegalArgumentException("Unknown resource type [" + selectedResourceType + "]"); } } /** * Unchecks the designated CheckableResourceFilename object. Handles * business rules around the acceptability of having no checked files. * <p> * The rules are as follows: * <ul> * <li></li> * </ul> * </p> * * @param selectedCheckableFilename * the file that has been unchecked by the user */ private void handleNoCheckRules(CheckableResourceFilename uncheckedCheckableFilename) { uncheckedCheckableFilename.setChecked(false); resourceFilesViewer.setChecked(uncheckedCheckableFilename, false); } private void initialiseMaps() { for (ResourcesEnums type : ResourcesEnums.values()) { resourceFilesMap.put(type, null); } } private void populateResourceFilesTable(String[] filenames, ResourcesEnums resourceType) { java.util.List<String> listOfFilenames = Helper.toListOfStrings(filenames); java.util.List<CheckableResourceFilename> checkableFilenames = new ArrayList<CheckableResourceFilename>(); for (String filename : listOfFilenames) { CheckableResourceFilename crf = new CheckableResourceFilename(filename); checkableFilenames.add(crf); } IStructuredSelection ssel = (IStructuredSelection) resourceTypesViewer.getSelection(); if (!ssel.isEmpty()) { ResourcesEnums selectedType = (ResourcesEnums) ssel.getFirstElement(); if (selectedType.equals(resourceType)) { resourceFilesViewer.setInput(checkableFilenames); } } resourceFilesMap.put(resourceType, checkableFilenames); } public void setBorderShapesFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.BORDER_SHAPES); } public void setBorderStylesFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.BORDER_STYLES); } public void setColoursFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.COLOURS); } public void setDependenciesFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.DEPENDENCIES); } public void setLevelsFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.LEVELS); } public void setLocalisationFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.LOCALISATION); } public void setPatternsFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.PATTERNS); } public void setS12XmlFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.S12_XML); } public void setSelectedBorderShapesFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.BORDER_SHAPES); } public void setSelectedBorderStylesFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.BORDER_STYLES); } public void setSelectedColoursFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.COLOURS); } public void setSelectedDependenciesFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.DEPENDENCIES); } public void setSelectedLevelsFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.LEVELS); } public void setSelectedLocalisationFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.LOCALISATION); } public void setSelectedPatternsFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.PATTERNS); } public void setSelectedS12XmlFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.S12_XML); } public void setSelectedShapesFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.SHAPES); } public void setSelectedSystemInfoFiles(String[] filenames) { checkFilesInResourceFilesTable(filenames, ResourcesEnums.SYSTEM_INFO); } public void setShapesFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.SHAPES); } public void setSystemInfoFiles(String[] filenames) { populateResourceFilesTable(filenames, ResourcesEnums.SYSTEM_INFO); } }