/** Returns true if the user entered a valid, non-empty repository location. */ public boolean hasSelection(boolean allowFolders) { if (!allowFolders && ((enforceValidRepositoryEntryName && locationFieldRepositoryEntry.getText().isEmpty()) || (!enforceValidRepositoryEntryName && locationField.getText().isEmpty()) || (enforceValidRepositoryEntryName && !RepositoryLocation.isNameValid(locationFieldRepositoryEntry.getText())))) { return false; } else { try { getRepositoryLocation(); return true; } catch (MalformedRepositoryLocationException e) { // LogService.getRoot().warning("Malformed repository location: " + e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.repository.gui.RepositoryLocationChooser.malformed_repository_location", e), e); return false; } } }
public String getRepositoryLocation() throws MalformedRepositoryLocationException { if (tree.getSelectionPath() != null) { Entry selectedEntry = (Entry) tree.getSelectionPath().getLastPathComponent(); RepositoryLocation selectedLocation = selectedEntry.getLocation(); if (selectedEntry instanceof Folder) { if (enforceValidRepositoryEntryName) { selectedLocation = new RepositoryLocation(selectedLocation, locationFieldRepositoryEntry.getText()); } else { selectedLocation = new RepositoryLocation(selectedLocation, locationField.getText()); } } if (RepositoryLocationChooser.this.resolveRelativeTo != null && resolveBox.isSelected()) { return selectedLocation.makeRelative(RepositoryLocationChooser.this.resolveRelativeTo); } else { return selectedLocation.getAbsoluteLocation(); } } else { if (enforceValidRepositoryEntryName) { return locationFieldRepositoryEntry.getText(); } else { return locationField.getText(); } } }
public RepositoryEntryInputDialog(String key, String text, Object... arguments) { super("input." + key, true, arguments); this.okButton = makeOkButton(); this.cancelButton = makeCancelButton(); if (text != null) { textField.setText(text); } textField.addObserver(this, true); layoutDefault(textField, okButton, cancelButton); textField.triggerCheck(); }
private void updateResult() { try { String repositoryLocation = getRepositoryLocation(); resultLabel.setText(repositoryLocation); } catch (MalformedRepositoryLocationException e) { // LogService.getRoot().log(Level.WARNING, "Malformed location: " + e, e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.repository.gui.RepositoryLocationChooser.malformed_location", e), e); } if ((currentEntry instanceof Folder) && !enforceValidRepositoryEntryName && locationField.getText().isEmpty()) { this.folderSelected = true; } if ((currentEntry instanceof Folder) && enforceValidRepositoryEntryName && locationFieldRepositoryEntry.getText().isEmpty()) { this.folderSelected = true; } else { this.folderSelected = false; } for (ChangeListener l : listeners) { l.stateChanged(new ChangeEvent(this)); } }
public String getInputText() { return textField.getText(); }
public RepositoryLocationChooser( Dialog owner, RepositoryLocation resolveRelativeTo, String initialValue, final boolean allowEntries, final boolean allowFolders, boolean enforceValidRepositoryEntryName, final boolean onlyWriteableRepositories) { if (initialValue != null) { try { RepositoryLocation repositoryLocation; if (resolveRelativeTo != null) { repositoryLocation = new RepositoryLocation(resolveRelativeTo, initialValue); } else { repositoryLocation = new RepositoryLocation(initialValue); } locationField.setText(repositoryLocation.getName()); locationFieldRepositoryEntry.setText(repositoryLocation.getName()); resultLabel.setText(repositoryLocation.toString()); } catch (Exception e) { } } this.resolveRelativeTo = resolveRelativeTo; this.enforceValidRepositoryEntryName = enforceValidRepositoryEntryName; tree = new RepositoryTree(owner, !allowEntries, onlyWriteableRepositories); if (initialValue != null) { if (tree.expandIfExists(resolveRelativeTo, initialValue)) { locationField.setText(""); locationFieldRepositoryEntry.setText(""); } } tree.getSelectionModel() .addTreeSelectionListener( new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { if (e.getPath() != null) { currentEntry = (Entry) e.getPath().getLastPathComponent(); if (currentEntry instanceof Folder) { // && allowFolders)) { // locationField.setText(""); } else if ((!(currentEntry instanceof Folder)) && allowEntries) { // if (true) { // //!(currentEntry instanceof Folder)) { locationField.setText(currentEntry.getLocation().getName()); locationFieldRepositoryEntry.setText(currentEntry.getLocation().getName()); } updateResult(); } } }); KeyListener keyListener = new KeyListener() { @Override public void keyPressed(KeyEvent e) {} @Override public void keyReleased(KeyEvent e) { updateResult(); } @Override public void keyTyped(KeyEvent e) { TreePath selectionPath = tree.getSelectionPath(); if (selectionPath != null) { Entry selectedEntry = (Entry) selectionPath.getLastPathComponent(); if (!(selectedEntry instanceof Folder)) { tree.setSelectionPath(selectionPath.getParentPath()); } } } }; locationField.addKeyListener(keyListener); locationFieldRepositoryEntry.addKeyListener(keyListener); locationFieldRepositoryEntry.addObserver(this, true); setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.insets = new Insets(0, 0, 0, 0); c.fill = GridBagConstraints.BOTH; c.weightx = 1; c.weighty = 1; c.anchor = GridBagConstraints.FIRST_LINE_START; c.gridwidth = GridBagConstraints.REMAINDER; JScrollPane treePane = new ExtendedJScrollPane(tree); treePane.setBorder(ButtonDialog.createBorder()); add(treePane, c); c.insets = new Insets(ButtonDialog.GAP, 0, 0, ButtonDialog.GAP); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 0; c.weighty = 0; c.gridwidth = GridBagConstraints.RELATIVE; c.weightx = 0; locationLabel = new ResourceLabel("repository_chooser.entry_name"); locationLabel.setLabelFor(locationField); add(locationLabel, c); c.weightx = 1; c.insets = new Insets(ButtonDialog.GAP, 0, 0, 0); c.weightx = 1; c.gridwidth = GridBagConstraints.REMAINDER; add(locationField, c); add(locationFieldRepositoryEntry, c); if (enforceValidRepositoryEntryName) { locationField.setVisible(false); } else { locationFieldRepositoryEntry.setVisible(false); } c.gridwidth = GridBagConstraints.RELATIVE; c.weightx = 0; c.insets = new Insets(ButtonDialog.GAP, 0, 0, ButtonDialog.GAP); add(new ResourceLabel("repository_chooser.location"), c); c.weightx = 1; c.insets = new Insets(ButtonDialog.GAP, 0, 0, 0); c.gridwidth = GridBagConstraints.REMAINDER; add(resultLabel, c); if (resolveRelativeTo != null) { resolveBox = new JCheckBox( new ResourceActionAdapter( "repository_chooser.resolve", resolveRelativeTo.getAbsoluteLocation())); resolveBox.setSelected( ParameterService.getParameterValue( RapidMinerGUI.PROPERTY_RESOLVE_RELATIVE_REPOSITORY_LOCATIONS) .equals("true")); add(resolveBox, c); resolveBox.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { updateResult(); } }); } }