List of usage examples for org.apache.commons.lang3 StringUtils substringAfterLast
public static String substringAfterLast(final String str, final String separator)
Gets the substring after the last occurrence of a separator.
From source file:org.codice.ddf.branding.BrandingRegistryImpl.java
@Override public String getProductVersion() { return getBrandingPlugins().stream() .map(plugin -> StringUtils.substringAfterLast(plugin.getProductName(), " ")) .filter(Objects::nonNull).findFirst().orElse(""); }
From source file:org.codice.ddf.commands.solr.RestoreCommandTest.java
private String getRequestId(String consoleOutput) { return StringUtils.trim( StringUtils.substringAfterLast(ASCII_COLOR_CODES_REGEX.matcher(consoleOutput).replaceAll(""), ":")); }
From source file:org.codice.ddf.security.servlet.logout.LogoutService.java
@GET @Path("/actions") public Response getActionProviders(@Context HttpServletRequest request) throws SecurityServiceException { HttpSession session = httpSessionFactory.getOrCreateSession(request); Map<String, SecurityToken> realmTokenMap = ((SecurityTokenHolder) session .getAttribute(SecurityConstants.SAML_ASSERTION)).getRealmTokenMap(); Map<String, Subject> realmSubjectMap = new HashMap<>(); for (Map.Entry<String, SecurityToken> entry : realmTokenMap.entrySet()) { realmSubjectMap.put(entry.getKey(), securityManager.getSubject(entry.getValue())); }// w w w . j ava 2 s . co m List<Map<String, String>> realmToPropMaps = new ArrayList<>(); for (ActionProvider actionProvider : logoutActionProviders) { List<Action> actions = actionProvider.getActions(realmSubjectMap); if (!CollectionUtils.isEmpty(actions)) { for (Action action : actions) { String realm = StringUtils.substringAfterLast(action.getId(), "."); //if the user is logged in and isn't a guest, add them if (realmTokenMap.get(realm) != null) { Map<String, String> actionProperties = new HashMap<>(); String displayName = SubjectUtils.getName(realmSubjectMap.get(realm), "", true); if (displayName != null && !displayName.equals(SubjectUtils.GUEST_DISPLAY_NAME)) { actionProperties.put("title", action.getTitle()); actionProperties.put("realm", realm); actionProperties.put("auth", displayName); actionProperties.put("description", action.getDescription()); actionProperties.put("url", action.getUrl().toString()); realmToPropMaps.add(actionProperties); } } } } } return Response.ok(new ByteArrayInputStream(toJson(realmToPropMaps).getBytes(StandardCharsets.UTF_8))) .build(); }
From source file:org.codice.ddf.security.servlet.logout.LogoutServiceImpl.java
@Override public String getActionProviders(HttpServletRequest request) throws SecurityServiceException { HttpSession session = httpSessionFactory.getOrCreateSession(request); Map<String, SecurityToken> realmTokenMap = ((SecurityTokenHolder) session .getAttribute(SecurityConstants.SAML_ASSERTION)).getRealmTokenMap(); Map<String, Subject> realmSubjectMap = new HashMap<>(); for (Map.Entry<String, SecurityToken> entry : realmTokenMap.entrySet()) { realmSubjectMap.put(entry.getKey(), securityManager.getSubject(entry.getValue())); }//from w ww. ja va 2 s. c o m List<Map<String, String>> realmToPropMaps = new ArrayList<>(); for (ActionProvider actionProvider : logoutActionProviders) { Action action = actionProvider.getAction(realmSubjectMap); if (action != null) { String realm = StringUtils.substringAfterLast(action.getId(), "."); if (realmTokenMap.get(realm) != null) { Map<String, String> actionProperties = new HashMap<>(); String displayName = SubjectUtils.getName(realmSubjectMap.get(realm), "", true); actionProperties.put("title", action.getTitle()); actionProperties.put("realm", realm); actionProperties.put("auth", displayName); actionProperties.put("description", action.getDescription()); actionProperties.put("url", action.getUrl().toString()); realmToPropMaps.add(actionProperties); } } } return toJson(realmToPropMaps); }
From source file:org.dbgl.gui.SettingsDialog.java
protected void createContents() { shell = new Shell(getParent(), SWT.TITLE | SWT.CLOSE | SWT.BORDER | SWT.RESIZE | SWT.APPLICATION_MODAL); shell.setLayout(new BorderLayout(0, 0)); shell.addControlListener(new SizeControlAdapter(shell, "settingsdialog")); shell.setText(settings.msg("dialog.settings.title")); final TabFolder tabFolder = new TabFolder(shell, SWT.NONE); final TabItem generalTabItem = new TabItem(tabFolder, SWT.NONE); generalTabItem.setText(settings.msg("dialog.settings.tab.general")); final Composite composite = new Composite(tabFolder, SWT.NONE); composite.setLayout(new GridLayout()); generalTabItem.setControl(composite); final Group dosboxGroup = new Group(composite, SWT.NONE); dosboxGroup.setText(settings.msg("dialog.settings.dosbox")); dosboxGroup.setLayout(new GridLayout(2, false)); final Label showConsoleLabel = new Label(dosboxGroup, SWT.NONE); showConsoleLabel.setText(settings.msg("dialog.settings.hidestatuswindow")); final Button console = new Button(dosboxGroup, SWT.CHECK); console.setSelection(conf.getBooleanValue("dosbox", "hideconsole")); final Group sendToGroup = new Group(composite, SWT.NONE); sendToGroup.setText(settings.msg("dialog.settings.sendto")); sendToGroup.setLayout(new GridLayout(2, false)); final Label enableCommLabel = new Label(sendToGroup, SWT.NONE); enableCommLabel.setText(settings.msg("dialog.settings.enableport")); final Button portEnabled = new Button(sendToGroup, SWT.CHECK); portEnabled.setSelection(conf.getBooleanValue("communication", "port_enabled")); portEnabled.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { port.setEnabled(portEnabled.getSelection()); }// w ww . j a v a 2 s.c o m }); final Label portnumberLabel = new Label(sendToGroup, SWT.NONE); portnumberLabel.setText(settings.msg("dialog.settings.port")); port = new Text(sendToGroup, SWT.BORDER); port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); port.setText(conf.getValue("communication", "port")); port.setEnabled(portEnabled.getSelection()); final Group profileDefGroup = new Group(composite, SWT.NONE); profileDefGroup.setText(settings.msg("dialog.settings.profiledefaults")); profileDefGroup.setLayout(new GridLayout(3, false)); final Label configFileLabel = new Label(profileDefGroup, SWT.NONE); configFileLabel.setText(settings.msg("dialog.settings.configfile")); confLocation = new Combo(profileDefGroup, SWT.READ_ONLY); confLocation.setItems(confLocations); confLocation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); confLocation.select(conf.getIntValue("profiledefaults", "confpath")); confFilename = new Combo(profileDefGroup, SWT.READ_ONLY); confFilename.setItems(confFilenames); confFilename.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); confFilename.select(conf.getIntValue("profiledefaults", "conffile")); final Group i18nGroup = new Group(composite, SWT.NONE); i18nGroup.setText(settings.msg("dialog.settings.i18n")); i18nGroup.setLayout(new GridLayout(2, false)); final Label languageLabel = new Label(i18nGroup, SWT.NONE); languageLabel.setText(settings.msg("dialog.settings.languagecountry")); localeCombo = new Combo(i18nGroup, SWT.READ_ONLY); Locale locale = new Locale(conf.getValue("locale", "language"), conf.getValue("locale", "country"), conf.getValue("locale", "variant")); final SortedMap<String, Locale> locales = new TreeMap<String, Locale>(); String locString = ""; java.util.List<String> supportedLanguages = new ArrayList<String>(SUPPORTED_LANGUAGES); File[] files = new File("./plugins/i18n").listFiles(); if (files != null) { for (File file : files) { String name = file.getName(); if (name.startsWith("MessagesBundle_") && name.endsWith(".properties")) { String code = name.substring("MessagesBundle_".length(), name.indexOf(".properties")); if (code.length() > 0) { supportedLanguages.add(code); } } } } for (String lang : supportedLanguages) { Locale loc = allLocales.get(lang); String variant = null; if (loc == null && StringUtils.countMatches(lang, "_") == 2) { String langWithoutVariant = StringUtils.removeEnd(StringUtils.substringBeforeLast(lang, "_"), "_"); variant = StringUtils.substringAfterLast(lang, "_"); loc = allLocales.get(langWithoutVariant); } if (loc != null) { StringBuffer s = new StringBuffer(loc.getDisplayLanguage(Locale.getDefault())); if (loc.getCountry().length() > 0) s.append(" - ").append(loc.getDisplayCountry(Locale.getDefault())); if (variant != null) { s.append(" (").append(variant).append(')'); loc = new Locale(loc.getLanguage(), loc.getCountry(), variant); } locales.put(s.toString(), loc); if (loc.equals(locale)) { locString = s.toString(); } } } for (String sloc : locales.keySet()) { localeCombo.add(sloc); } localeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); localeCombo.setText(locString); localeCombo.setVisibleItemCount(20); columnsTabItem = new TabItem(tabFolder, SWT.NONE); columnsTabItem.setText(settings.msg("dialog.settings.tab.profiletable")); final Composite composite2 = new Composite(tabFolder, SWT.NONE); composite2.setLayout(new BorderLayout(0, 0)); columnsTabItem.setControl(composite2); final Group visColumnsGroup = new Group(composite2, SWT.NONE); visColumnsGroup.setLayout(new FillLayout()); visColumnsGroup.setText(settings.msg("dialog.settings.visiblecolunms")); visible_columns = new Table(visColumnsGroup, SWT.FULL_SELECTION | SWT.BORDER | SWT.CHECK); visible_columns.setLinesVisible(true); TableColumn column1 = new TableColumn(visible_columns, SWT.NONE); column1.setWidth(350); java.util.List<Integer> visibleColumnIDs = new ArrayList<Integer>(); for (int i = 0; i < MainWindow.columnNames.length; i++) if (conf.getBooleanValue("gui", "column" + (i + 1) + "visible")) visibleColumnIDs.add(i); java.util.List<Integer> orderedVisibleColumnIDs = new ArrayList<Integer>(); int[] columnOrder = conf.getIntValues("gui", "columnorder"); for (int i = 0; i < columnOrder.length; i++) orderedVisibleColumnIDs.add(visibleColumnIDs.get(columnOrder[i])); java.util.List<Integer> remainingColumnIDs = new ArrayList<Integer>(); for (int i = 0; i < MainWindow.columnNames.length; i++) if (!orderedVisibleColumnIDs.contains(i)) remainingColumnIDs.add(i); allColumnIDs = new ArrayList<Integer>(orderedVisibleColumnIDs); allColumnIDs.addAll(remainingColumnIDs); visibleColumns = new TableItem[MainWindow.columnNames.length]; for (int i = 0; i < MainWindow.columnNames.length; i++) { visibleColumns[i] = new TableItem(visible_columns, SWT.BORDER); visibleColumns[i].setText(MainWindow.columnNames[allColumnIDs.get(i)]); visibleColumns[i] .setChecked(conf.getBooleanValue("gui", "column" + (allColumnIDs.get(i) + 1) + "visible")); } final TableEditor editor = new TableEditor(visible_columns); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; editor.minimumWidth = 50; visible_columns.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { // Clean up any previous editor control Control oldEditor = editor.getEditor(); if (oldEditor != null) { oldEditor.dispose(); } // Identify the selected row TableItem item = (TableItem) event.item; if (item == null) { return; } int selIdx = item.getParent().getSelectionIndex(); if (selIdx == -1) return; int idx = allColumnIDs.get(selIdx); if (idx < Constants.RO_COLUMN_NAMES || idx >= (Constants.RO_COLUMN_NAMES + Constants.EDIT_COLUMN_NAMES)) return; // The control that will be the editor must be a child of the table Text newEditor = new Text(visible_columns, SWT.NONE); newEditor.setText(item.getText(EDITABLE_COLUMN)); newEditor.addModifyListener(new ModifyListener() { public void modifyText(final ModifyEvent mEvent) { Text text = (Text) editor.getEditor(); editor.getItem().setText(EDITABLE_COLUMN, text.getText()); } }); newEditor.selectAll(); newEditor.setFocus(); editor.setEditor(newEditor, item, EDITABLE_COLUMN); } }); final Group addProfGroup = new Group(composite2, SWT.NONE); addProfGroup.setLayout(new GridLayout(2, false)); addProfGroup.setText(settings.msg("dialog.settings.addeditduplicateprofile")); addProfGroup.setLayoutData(BorderLayout.SOUTH); final Label autoSortLabel = new Label(addProfGroup, SWT.NONE); autoSortLabel.setText(settings.msg("dialog.settings.autosort")); final Button autosort = new Button(addProfGroup, SWT.CHECK); autosort.setSelection(conf.getBooleanValue("gui", "autosortonupdate")); final TabItem dynTabItem = new TabItem(tabFolder, SWT.NONE); dynTabItem.setText(settings.msg("dialog.settings.tab.dynamicoptions")); final Composite composite_1 = new Composite(tabFolder, SWT.NONE); composite_1.setLayout(new FillLayout()); dynTabItem.setControl(composite_1); final Group dynOptionsGroup = new Group(composite_1, SWT.NONE); dynOptionsGroup.setLayout(new GridLayout(2, false)); dynOptionsGroup.setText(settings.msg("dialog.settings.dynamicoptions")); final Label optionsLabel = new Label(dynOptionsGroup, SWT.NONE); optionsLabel.setText(settings.msg("dialog.settings.options")); final Label valuesLabel = new Label(dynOptionsGroup, SWT.NONE); valuesLabel.setText(settings.msg("dialog.settings.values")); options = new List(dynOptionsGroup, SWT.V_SCROLL | SWT.BORDER); options.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { storeValues(); previousSelection = options.getSelectionIndex(); if (previousSelection != -1) { values.setText(conf.getMultilineValues("profile", options.getItem(previousSelection), values.getLineDelimiter())); } } }); options.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); for (String s : conf.getAllItemNames("profile")) { options.add(s); } values = new Text(dynOptionsGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); values.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); final TabItem guiTabItem = new TabItem(tabFolder, SWT.NONE); guiTabItem.setText(settings.msg("dialog.settings.tab.gui")); final Composite composite1 = new Composite(tabFolder, SWT.NONE); composite1.setLayout(new GridLayout(2, false)); guiTabItem.setControl(composite1); Group screenshots = new Group(composite1, SWT.NONE); screenshots.setLayout(new GridLayout(3, false)); GridData screenshotsLData = new GridData(); screenshotsLData.grabExcessHorizontalSpace = true; screenshotsLData.horizontalAlignment = GridData.FILL; screenshotsLData.horizontalSpan = 2; screenshots.setLayoutData(screenshotsLData); screenshots.setText(settings.msg("dialog.settings.screenshots")); Label heightLabel = new Label(screenshots, SWT.NONE); heightLabel.setText(settings.msg("dialog.settings.height")); GridData sshotsHeightData = new GridData(); sshotsHeightData.grabExcessHorizontalSpace = true; sshotsHeightData.horizontalAlignment = GridData.FILL; screenshotsHeight = new Scale(screenshots, SWT.NONE); screenshotsHeight.setMaximum(750); screenshotsHeight.setMinimum(50); screenshotsHeight.setLayoutData(sshotsHeightData); screenshotsHeight.setIncrement(25); screenshotsHeight.setPageIncrement(100); screenshotsHeight.setSelection(conf.getIntValue("gui", "screenshotsheight")); screenshotsHeight.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent evt) { heightValue.setText(screenshotsHeight.getSelection() + settings.msg("dialog.settings.px")); heightValue.pack(); } }); heightValue = new Label(screenshots, SWT.NONE); heightValue.setText(screenshotsHeight.getSelection() + settings.msg("dialog.settings.px")); final Label displayFilenameLabel = new Label(screenshots, SWT.NONE); displayFilenameLabel.setText(settings.msg("dialog.settings.screenshotsfilename")); final Button displayFilename = new Button(screenshots, SWT.CHECK); displayFilename.setSelection(conf.getBooleanValue("gui", "screenshotsfilename")); Group screenshotsColumn = new Group(composite1, SWT.NONE); screenshotsColumn.setLayout(new GridLayout(3, false)); GridData screenshotsCData = new GridData(); screenshotsCData.grabExcessHorizontalSpace = true; screenshotsCData.horizontalAlignment = GridData.FILL; screenshotsCData.horizontalSpan = 2; screenshotsColumn.setLayoutData(screenshotsCData); screenshotsColumn.setText(settings.msg("dialog.settings.screenshotscolumn")); Label columnHeightLabel = new Label(screenshotsColumn, SWT.NONE); columnHeightLabel.setText(settings.msg("dialog.settings.height")); screenshotsColumnHeight = new Scale(screenshotsColumn, SWT.NONE); screenshotsColumnHeight.setMaximum(200); screenshotsColumnHeight.setMinimum(16); GridData sshotsColumnHeightData = new GridData(); sshotsColumnHeightData.grabExcessHorizontalSpace = true; sshotsColumnHeightData.horizontalAlignment = GridData.FILL; screenshotsColumnHeight.setLayoutData(sshotsColumnHeightData); screenshotsColumnHeight.setIncrement(4); screenshotsColumnHeight.setPageIncrement(16); screenshotsColumnHeight.setSelection(conf.getIntValue("gui", "screenshotscolumnheight")); screenshotsColumnHeight.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent evt) { columnHeightValue .setText(screenshotsColumnHeight.getSelection() + settings.msg("dialog.settings.px")); columnHeightValue.pack(); } }); columnHeightValue = new Label(screenshotsColumn, SWT.NONE); columnHeightValue.setText(screenshotsColumnHeight.getSelection() + settings.msg("dialog.settings.px")); final Label stretchLabel = new Label(screenshotsColumn, SWT.NONE); stretchLabel.setText(settings.msg("dialog.settings.screenshotscolumnstretch")); final Button stretch = new Button(screenshotsColumn, SWT.CHECK); stretch.setSelection(conf.getBooleanValue("gui", "screenshotscolumnstretch")); new Label(screenshotsColumn, SWT.NONE); final Label keepAspectRatioLabel = new Label(screenshotsColumn, SWT.NONE); keepAspectRatioLabel.setText(settings.msg("dialog.settings.screenshotscolumnkeepaspectratio")); final Button keepAspectRatio = new Button(screenshotsColumn, SWT.CHECK); keepAspectRatio.setSelection(conf.getBooleanValue("gui", "screenshotscolumnkeepaspectratio")); new Label(screenshotsColumn, SWT.NONE); keepAspectRatio.setEnabled(stretch.getSelection()); stretch.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { keepAspectRatio.setEnabled(stretch.getSelection()); } }); Group buttonsGroup = new Group(composite1, SWT.NONE); buttonsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); buttonsGroup.setLayout(new GridLayout(2, false)); buttonsGroup.setText(settings.msg("dialog.settings.buttons")); final Label buttonLabel = new Label(buttonsGroup, SWT.NONE); buttonLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); buttonLabel.setText(settings.msg("dialog.settings.display")); buttonDisplay = new Combo(buttonsGroup, SWT.READ_ONLY); buttonDisplay.setItems(buttonDisplayOptions); buttonDisplay.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); buttonDisplay.select(conf.getIntValue("gui", "buttondisplay")); final Group notesGroup = new Group(composite1, SWT.NONE); notesGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); notesGroup.setLayout(new GridLayout(2, false)); notesGroup.setText(settings.msg("dialog.profile.notes")); final Label fontLabel = new Label(notesGroup, SWT.NONE); fontLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); fontLabel.setText(settings.msg("dialog.settings.font")); final Button fontButton = new Button(notesGroup, SWT.PUSH); fontButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); Font f = GeneralPurposeGUI.stringToFont(shell.getDisplay(), port.getFont(), conf.getValues("gui", "notesfont")); fontButton.setText(f.getFontData()[0].getName()); fontButton.setFont(f); fontButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FontDialog fd = new FontDialog(shell, SWT.NONE); fd.setFontList(fontButton.getFont().getFontData()); FontData newFont = fd.open(); if (newFont != null) { fontButton.setText(newFont.getName()); fontButton.setFont(new Font(shell.getDisplay(), newFont)); notesGroup.setSize(notesGroup.computeSize(SWT.DEFAULT, SWT.DEFAULT)); composite1.layout(); } } }); final TabItem enginesTabItem = new TabItem(tabFolder, SWT.NONE); enginesTabItem.setText(settings.msg("dialog.settings.tab.engines")); Composite compositeHoldingSubTabs = new Composite(tabFolder, SWT.NONE); compositeHoldingSubTabs.setLayout(new FillLayout()); enginesTabItem.setControl(compositeHoldingSubTabs); final TabFolder enginesTabFolder = new TabFolder(compositeHoldingSubTabs, SWT.NONE); setTitle = new Button[NR_OF_ENGINES]; setDev = new Button[NR_OF_ENGINES]; setPub = new Button[NR_OF_ENGINES]; setYear = new Button[NR_OF_ENGINES]; setGenre = new Button[NR_OF_ENGINES]; setLink = new Button[NR_OF_ENGINES]; setRank = new Button[NR_OF_ENGINES]; setDescr = new Button[NR_OF_ENGINES]; allRegionsCoverArt = new Button[NR_OF_ENGINES]; chooseCoverArt = new Button[NR_OF_ENGINES]; chooseScreenshot = new Button[NR_OF_ENGINES]; maxCoverArt = new Spinner[NR_OF_ENGINES]; maxScreenshots = new Spinner[NR_OF_ENGINES]; platformFilterValues = new Text[NR_OF_ENGINES]; for (int i = 0; i < NR_OF_ENGINES; i++) { WebSearchEngine engine = EditProfileDialog.webSearchEngines.get(i); final TabItem engineTabItem = new TabItem(enginesTabFolder, SWT.NONE); engineTabItem.setText(settings.msg("dialog.settings.tab." + engine.getSimpleName())); Composite composite3 = new Composite(enginesTabFolder, SWT.NONE); composite3.setLayout(new GridLayout(1, true)); engineTabItem.setControl(composite3); Group consult = new Group(composite3, SWT.NONE); consult.setLayout(new GridLayout(2, false)); GridData consultLData = new GridData(); consultLData.grabExcessHorizontalSpace = true; consultLData.horizontalAlignment = GridData.FILL; consultLData.grabExcessVerticalSpace = true; consultLData.verticalAlignment = GridData.FILL; consult.setLayoutData(consultLData); consult.setText(settings.msg("dialog.settings.consult", new String[] { engine.getName() })); Label titleLabel = new Label(consult, SWT.NONE); titleLabel.setText(settings.msg("dialog.settings.settitle")); setTitle[i] = new Button(consult, SWT.CHECK); setTitle[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_title")); Label devLabel = new Label(consult, SWT.NONE); devLabel.setText(settings.msg("dialog.settings.setdeveloper")); setDev[i] = new Button(consult, SWT.CHECK); setDev[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_developer")); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud") || engine.getSimpleName().equals("thegamesdb")) { Label pubLabel = new Label(consult, SWT.NONE); pubLabel.setText(settings.msg("dialog.settings.setpublisher")); setPub[i] = new Button(consult, SWT.CHECK); setPub[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_publisher")); } Label yearLabel = new Label(consult, SWT.NONE); yearLabel.setText(settings.msg("dialog.settings.setyear")); setYear[i] = new Button(consult, SWT.CHECK); setYear[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_year")); Label genreLabel = new Label(consult, SWT.NONE); genreLabel.setText(settings.msg("dialog.settings.setgenre")); setGenre[i] = new Button(consult, SWT.CHECK); setGenre[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_genre")); Label linkLabel = new Label(consult, SWT.NONE); linkLabel.setText(settings.msg("dialog.settings.setlink", new String[] { engine.getName() })); setLink[i] = new Button(consult, SWT.CHECK); setLink[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_link")); Label rankLabel = new Label(consult, SWT.NONE); rankLabel.setText(settings.msg("dialog.settings.setrank", new Object[] { MainWindow.columnNames[Constants.RO_COLUMN_NAMES + 8] })); setRank[i] = new Button(consult, SWT.CHECK); setRank[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_rank")); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud") || engine.getSimpleName().equals("thegamesdb")) { Label descrLabel = new Label(consult, SWT.NONE); descrLabel.setText(settings.msg("dialog.settings.setdescription")); setDescr[i] = new Button(consult, SWT.CHECK); setDescr[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_description")); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) { Label chooseCoverArtLabel = new Label(consult, SWT.NONE); chooseCoverArtLabel.setText(settings.msg("dialog.settings.choosecoverart")); Composite comp = new Composite(consult, SWT.NONE); GridLayout layout = new GridLayout(3, false); layout.marginWidth = 0; comp.setLayout(layout); chooseCoverArt[i] = new Button(comp, SWT.CHECK); chooseCoverArt[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "choose_coverart")); if (engine.getSimpleName().equals("mobygames")) { Label allRegionsCoverArtLabel = new Label(comp, SWT.NONE); allRegionsCoverArtLabel.setText(settings.msg("dialog.settings.allregionscoverart")); GridData gd = new GridData(); gd.horizontalIndent = 40; allRegionsCoverArtLabel.setLayoutData(gd); allRegionsCoverArt[i] = new Button(comp, SWT.CHECK); allRegionsCoverArt[i].setSelection( conf.getBooleanValue(engine.getSimpleName(), "force_all_regions_coverart")); } } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet") || engine.getSimpleName().equals("thegamesdb")) { Label chooseScreenshotLabel = new Label(consult, SWT.NONE); chooseScreenshotLabel.setText(settings.msg("dialog.settings.choosescreenshot")); chooseScreenshot[i] = new Button(consult, SWT.CHECK); chooseScreenshot[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "choose_screenshot")); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) { final Label maxCoverArtLabel = new Label(consult, SWT.NONE); maxCoverArtLabel.setText(settings.msg("dialog.settings.multieditmaxcoverart")); maxCoverArt[i] = new Spinner(consult, SWT.BORDER); maxCoverArt[i].setLayoutData(new GridData(100, SWT.DEFAULT)); maxCoverArt[i].setMinimum(0); maxCoverArt[i].setMaximum(Integer.MAX_VALUE); maxCoverArt[i].setSelection(conf.getIntValue(engine.getSimpleName(), "multi_max_coverart")); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet") || engine.getSimpleName().equals("thegamesdb")) { final Label maxScreenshotsLabel = new Label(consult, SWT.NONE); maxScreenshotsLabel.setText(settings.msg("dialog.settings.multieditmaxscreenshot")); maxScreenshots[i] = new Spinner(consult, SWT.BORDER); maxScreenshots[i].setLayoutData(new GridData(100, SWT.DEFAULT)); maxScreenshots[i].setMinimum(0); maxScreenshots[i].setMaximum(Integer.MAX_VALUE); maxScreenshots[i].setSelection(conf.getIntValue(engine.getSimpleName(), "multi_max_screenshot")); } Label filterLabel = new Label(consult, SWT.NONE); filterLabel.setText(settings.msg("dialog.settings.platformfilter")); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")) { platformFilterValues[i] = new Text(consult, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); platformFilterValues[i].setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); platformFilterValues[i].setText(conf.getMultilineValues(engine.getSimpleName(), "platform_filter", platformFilterValues[i].getLineDelimiter())); } else { platformFilterValues[i] = new Text(consult, SWT.BORDER); platformFilterValues[i].setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); platformFilterValues[i].setText(conf.getValue(engine.getSimpleName(), "platform_filter")); } } final TabItem envTabItem = new TabItem(tabFolder, SWT.NONE); envTabItem.setText(settings.msg("dialog.settings.tab.environment")); Composite composite4 = new Composite(tabFolder, SWT.NONE); composite4.setLayout(new GridLayout(1, true)); envTabItem.setControl(composite4); Group envGroup = new Group(composite4, SWT.NONE); envGroup.setLayout(new GridLayout(2, false)); GridData envLData = new GridData(); envLData.grabExcessHorizontalSpace = true; envLData.horizontalAlignment = GridData.FILL; envLData.grabExcessVerticalSpace = true; envLData.verticalAlignment = GridData.FILL; envGroup.setLayoutData(envLData); envGroup.setText(settings.msg("dialog.settings.environment")); Label enableEnvLabel = new Label(envGroup, SWT.NONE); enableEnvLabel.setText(settings.msg("dialog.settings.enableenvironment")); final Button enableEnv = new Button(envGroup, SWT.CHECK); enableEnv.setSelection(conf.getBooleanValue("environment", "use")); enableEnv.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { envValues.setEnabled(enableEnv.getSelection()); } }); Label envLabel = new Label(envGroup, SWT.NONE); envLabel.setText(settings.msg("dialog.settings.environmentvariables")); envValues = new Text(envGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); envValues.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); envValues.setText(conf.getMultilineValues("environment", "value", envValues.getLineDelimiter())); envValues.setEnabled(enableEnv.getSelection()); final Composite composite_7 = new Composite(shell, SWT.NONE); composite_7.setLayout(new GridLayout(2, true)); composite_7.setLayoutData(BorderLayout.SOUTH); final Button okButton = new Button(composite_7, SWT.NONE); okButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { if (!isValid()) { return; } changedVisColumns = haveColumnsBeenChanged(); if (changedVisColumns) updateColumnSettings(); conf.setBooleanValue("dosbox", "hideconsole", console.getSelection()); conf.setBooleanValue("communication", "port_enabled", portEnabled.getSelection()); conf.setValue("communication", "port", port.getText()); conf.setIntValue("profiledefaults", "confpath", confLocation.getSelectionIndex()); conf.setIntValue("profiledefaults", "conffile", confFilename.getSelectionIndex()); conf.setValue("locale", "language", locales.get(localeCombo.getText()).getLanguage()); conf.setValue("locale", "country", locales.get(localeCombo.getText()).getCountry()); conf.setValue("locale", "variant", locales.get(localeCombo.getText()).getVariant()); for (int i = 0; i < MainWindow.columnNames.length; i++) { conf.setBooleanValue("gui", "column" + (i + 1) + "visible", visibleColumns[allColumnIDs.indexOf(i)].getChecked()); } conf.setBooleanValue("gui", "autosortonupdate", autosort.getSelection()); for (int i = 0; i < Constants.EDIT_COLUMN_NAMES; i++) { conf.setValue("gui", "custom" + (i + 1), visibleColumns[allColumnIDs.indexOf(i + Constants.RO_COLUMN_NAMES)].getText()); } conf.setIntValue("gui", "screenshotsheight", screenshotsHeight.getSelection()); conf.setBooleanValue("gui", "screenshotsfilename", displayFilename.getSelection()); conf.setIntValue("gui", "screenshotscolumnheight", screenshotsColumnHeight.getSelection()); conf.setBooleanValue("gui", "screenshotscolumnstretch", stretch.getSelection()); conf.setBooleanValue("gui", "screenshotscolumnkeepaspectratio", keepAspectRatio.getSelection()); Rectangle rec = shell.getBounds(); conf.setIntValue("gui", "settingsdialog_width", rec.width); conf.setIntValue("gui", "settingsdialog_height", rec.height); conf.setIntValue("gui", "buttondisplay", buttonDisplay.getSelectionIndex()); conf.setMultilineValues("gui", "notesfont", GeneralPurposeGUI.fontToString(shell.getDisplay(), fontButton.getFont()), "|"); for (int i = 0; i < NR_OF_ENGINES; i++) { WebSearchEngine engine = EditProfileDialog.webSearchEngines.get(i); conf.setBooleanValue(engine.getSimpleName(), "set_title", setTitle[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_developer", setDev[i].getSelection()); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud") || engine.getSimpleName().equals("thegamesdb")) { conf.setBooleanValue(engine.getSimpleName(), "set_publisher", setPub[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_description", setDescr[i].getSelection()); } conf.setBooleanValue(engine.getSimpleName(), "set_year", setYear[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_genre", setGenre[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_link", setLink[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_rank", setRank[i].getSelection()); if (engine.getSimpleName().equals("mobygames")) { conf.setBooleanValue(engine.getSimpleName(), "force_all_regions_coverart", allRegionsCoverArt[i].getSelection()); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) { conf.setBooleanValue(engine.getSimpleName(), "choose_coverart", chooseCoverArt[i].getSelection()); conf.setIntValue(engine.getSimpleName(), "multi_max_coverart", maxCoverArt[i].getSelection()); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet") || engine.getSimpleName().equals("thegamesdb")) { conf.setBooleanValue(engine.getSimpleName(), "choose_screenshot", chooseScreenshot[i].getSelection()); conf.setIntValue(engine.getSimpleName(), "multi_max_screenshot", maxScreenshots[i].getSelection()); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")) { conf.setMultilineValues(engine.getSimpleName(), "platform_filter", platformFilterValues[i].getText(), platformFilterValues[i].getLineDelimiter()); } else { conf.setValue(engine.getSimpleName(), "platform_filter", platformFilterValues[i].getText()); } } conf.setBooleanValue("environment", "use", enableEnv.getSelection()); conf.setMultilineValues("environment", "value", envValues.getText(), envValues.getLineDelimiter()); storeValues(); settings.getSettings().injectValuesFrom(conf); shell.close(); } private boolean haveColumnsBeenChanged() { for (int i = 0; i < MainWindow.columnNames.length; i++) if ((conf.getBooleanValue("gui", "column" + (allColumnIDs.get(i) + 1) + "visible") != visibleColumns[i].getChecked()) || !MainWindow.columnNames[allColumnIDs.get(i)].equals(visibleColumns[i].getText())) return true; return false; } }); shell.setDefaultButton(okButton); okButton.setText(settings.msg("button.ok")); final Button cancelButton = new Button(composite_7, SWT.NONE); cancelButton.setText(settings.msg("button.cancel")); cancelButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { shell.close(); } }); final GridData gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.widthHint = GeneralPurposeGUI.getWidth(okButton, cancelButton); okButton.setLayoutData(gridData); cancelButton.setLayoutData(gridData); }
From source file:org.debux.webmotion.server.convention.DefaultConventionScan.java
/** * Scan the controllers by convention./*from w w w. jav a 2 s . c om*/ */ public List<ActionRule> scanControllers(Mapping mapping) { Collection<Class<?>> controllers = ReflectionUtils.getClassesBySuperClass(ConventionController.class); List<ActionRule> rules = new ArrayList<ActionRule>(controllers.size()); for (Class<?> controller : controllers) { Method[] methods = controller.getMethods(); for (Method method : methods) { Class<?> declaringClass = method.getDeclaringClass(); if (!declaringClass.equals(Object.class) && !declaringClass.equals(WebMotionController.class)) { ActionRule rule = new ActionRule(); rule.setMapping(mapping); rule.setLine(-1); rules.add(rule); String className = controller.getName(); String methodName = method.getName(); // Create action Action action = new Action(); action.setFullName(className + "." + methodName); action.setType(Action.Type.ACTION); rule.setAction(action); // Search http method String httpMethod = "*"; if (methodName.startsWith("create")) { httpMethod = HttpContext.METHOD_PUT; methodName = methodName.replaceFirst("create", ""); } else if (methodName.startsWith("get")) { httpMethod = HttpContext.METHOD_GET; methodName = methodName.replaceFirst("get", ""); } else if (methodName.startsWith("delete")) { httpMethod = HttpContext.METHOD_DELETE; methodName = methodName.replaceFirst("delete", ""); } else if (methodName.startsWith("update")) { httpMethod = HttpContext.METHOD_POST; methodName = methodName.replaceFirst("update", ""); } rule.setMethods(Arrays.asList(httpMethod)); // Create path List<FragmentUrl> url = new ArrayList<FragmentUrl>(); String simpleClassName = controller.getSimpleName(); Package controllerPackage = controller.getPackage(); if (controllerPackage != null) { String packageName = controllerPackage.getName(); String subPackageName = StringUtils.substringAfterLast(packageName, "."); if (!StringUtils.startsWithIgnoreCase(simpleClassName, subPackageName)) { url.addAll(createFragmentUrlList(subPackageName)); } } url.addAll(createFragmentUrlList(simpleClassName)); if (methodName.length() != 0) { url.addAll(createFragmentUrlList(methodName)); } rule.setRuleUrl(url); } } } return rules; }
From source file:org.debux.webmotion.server.convention.DefaultConventionScan.java
/** * Scan the filters by convention.//www .j a v a2 s.c o m */ public List<FilterRule> scanFilters(Mapping mapping) { Pattern allPattern = Pattern.compile("/*"); Collection<Class<?>> filters = ReflectionUtils.getClassesBySuperClass(ConventionAllFilter.class); List<FilterRule> rules = new ArrayList<FilterRule>(filters.size()); for (Class<?> filter : filters) { FilterRule rule = new FilterRule(); rule.setMapping(mapping); rule.setLine(-1); rules.add(rule); rule.setMethods(Arrays.asList("*")); rule.setPattern(allPattern); Action action = new Action(); action.setType(Action.Type.ACTION); action.setFullName(filter.getName() + ".filter"); rule.setAction(action); } filters = ReflectionUtils.getClassesBySuperClass(ConventionPackageFilter.class); for (Class<?> filter : filters) { FilterRule rule = new FilterRule(); rule.setMapping(mapping); rule.setLine(-1); rules.add(rule); Package filterPackage = filter.getPackage(); if (filterPackage != null) { String packageName = filterPackage.getName(); String subPackageName = StringUtils.substringAfterLast(packageName, "."); String regexp = "/" + subPackageName.toLowerCase() + "/*"; rule.setPattern(Pattern.compile(regexp)); } else { rule.setPattern(allPattern); } rule.setMethods(Arrays.asList("*")); Action action = new Action(); action.setType(Action.Type.ACTION); action.setFullName(filter.getName() + ".filter"); rule.setAction(action); } return rules; }
From source file:org.debux.webmotion.server.mapping.Action.java
public String getMethodName() { return StringUtils.substringAfterLast(fullName, "."); }
From source file:org.debux.webmotion.server.render.RenderAction.java
@Override public void create(Mapping mapping, Call call) throws IOException, ServletException { String className = StringUtils.substringBeforeLast(action, "."); String methodName = StringUtils.substringAfterLast(action, "."); Config config = mapping.getConfig(); String packageName = config.getPackageActions(); String fullQualifiedName = null; if (packageName == null || packageName.isEmpty()) { fullQualifiedName = className;/*from w w w. j a v a 2 s. c o m*/ } else { fullQualifiedName = packageName + "." + className; } try { SingletonFactory<WebMotionController> factory = ExecutorInstanceCreatorHandler .getControllerFactory(mapping, call); WebMotionController instance = factory.getInstance(fullQualifiedName); // Invoke method Method method = ReflectionUtils.getMethod(instance.getClass(), methodName); if (method == null) { throw new WebMotionException( "Method not found with name " + methodName + " on class " + fullQualifiedName, call.getRule()); } Render actionRender = (Render) method.invoke(instance, model); // Request the render call.setRender(actionRender); actionRender.create(mapping, call); } catch (IllegalAccessException iae) { throw new WebMotionException("Error render action", iae, call.getRule()); } catch (IllegalArgumentException iae) { throw new WebMotionException("Error render action", iae, call.getRule()); } catch (InvocationTargetException ite) { throw new WebMotionException("Error render action", ite, call.getRule()); } }
From source file:org.debux.webmotion.server.WebMotionFilter.java
/** * Chain on filter. The filter is passed with the class name and the method * name separated by point. The doChain method replace the doProcess method * in this case./*from w ww .j av a2s . c o m*/ * @param filter the filter to call */ public void doChain(String filter) { Mapping mapping = contextable.getMapping(); Call call = contextable.getCall(); Rule currentRule = call.getCurrentRule(); HttpContext context = call.getContext(); ServerContext serverContext = context.getServerContext(); Map<String, Class<? extends WebMotionController>> globalControllers = serverContext.getGlobalControllers(); String className = StringUtils.substringBeforeLast(filter, "."); String methodName = StringUtils.substringAfterLast(filter, "."); Config config = mapping.getConfig(); String packageName = config.getPackageActions(); String fullQualifiedName = null; if (packageName == null || packageName.isEmpty()) { fullQualifiedName = className; } else { fullQualifiedName = packageName + "." + className; } try { Class<? extends WebMotionController> clazz = globalControllers.get(className); if (clazz == null) { clazz = (Class<WebMotionController>) Class.forName(fullQualifiedName); } Method method = ReflectionUtils.getMethod(clazz, methodName); if (method == null) { throw new WebMotionException( "Method not found with name " + methodName + " on class " + fullQualifiedName, currentRule); } Executor executor = new Executor(); executor.setClazz(clazz); executor.setMethod(method); executor.setRule(currentRule); RunnableHandler handler = (RunnableHandler) contextable.getHandler(); handler.chainFilter(executor); } catch (ClassNotFoundException clnfe) { throw new WebMotionException("Class not found with name " + fullQualifiedName, clnfe, currentRule); } }